我是在一组列的选择只有一个disctint列惹毛了,选择不同的只在一列与Oracle
比方说,我有这个疑问:SELECT A, B, C, D FROM TABLE WHERE A = 1
这是输出
A B C D
1 2 8 5
1 2 2 5
1 2 3 5
不过,我想是这样的:
A B C D
1 2 8 5
我怎么能做到这一点?
谢谢大家!
我是在一组列的选择只有一个disctint列惹毛了,选择不同的只在一列与Oracle
比方说,我有这个疑问:SELECT A, B, C, D FROM TABLE WHERE A = 1
这是输出
A B C D
1 2 8 5
1 2 2 5
1 2 3 5
不过,我想是这样的:
A B C D
1 2 8 5
我怎么能做到这一点?
谢谢大家!
一种方法是命令由列C下降的结果,然后只取第一行:
SELECT * FROM (
SELECT A, B, C, D
FROM TABLE_NAME
WHERE A = 1
ORDER BY C DESC
)
WHERE ROWNUM = 1;
这仍然是猜测,对吧?该要求并没有说“除了A = 1'和'C'被最大化之外,'B'和'D'的选择可以是随机的。” – mathguy
选择A,B,最大值(C):C,d 从表名 组A,B,D
如果要在C中尝试使用最高编号的结果,请尝试以下查询 SELECT A,B,C,D从表WHERE A = 1 AND C IN(SELECT MAX(C)FROM表) ;
你怎么知道你想要在第3栏8?你真的想要最高的价值(即聚合和分组)还是其他规则?而如果第二或第四列也有不同的值,对于不同的A? –
为什么你认为“8”是“C”列的“不同”值? –
如果您有几行“A = 1”,应选择哪一行?或者你可以选择“其中之一,哪一个并不重要”? – mathguy