我是在一組列的選擇只有一個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