2012-02-13 124 views
3

我想通過sql在oracle中獲取表中的唯一值。桌子看起來像這樣。SQL從選擇中獲取唯一值

表:具有列名稱和值的ABC。

NAME Value 
AA 10 
B 40 
CC 50 
AA 70 
DD 80 
CC 90 
EE 100 
FF 120 
GG 130 
H 150 
EE 170 
I 180 
J 200 
K 210 
L 300 
GG 320 

我想抓住從ABC中的唯一值的列名,優選具有較低的值數例如的那些AA來了兩次,所以我想搶AA一次,但價值較低的一次。

SELECT DISTINCT 
    (NAME), 
    VALUE 
FROM 
    ABC 
ORDER BY 
    NAME ASC; 

請幫忙。謝謝

回答

7
SELECT 
    NAME  AS NAME , 
    MIN(VALUE) AS VALUE 
FROM ABC 
GROUP BY NAME 
ORDER BY NAME ASC; 
+0

所以基本上與MSSQL相同:) – 2012-02-13 04:25:11

+0

@Dragos Toader,非常感謝您的回答,這似乎是工作。你可以建議從初學者到專家級別的任何好的SQL書籍。謝謝 – Nomad 2012-02-13 04:26:30

+0

我喜歡O'Reilly新聞學習SQL http://www.amazon.com/Learning-SQL-Alan-Beaulieu/dp/0596520832/ref=sr_1_8?s=books&ie=UTF8&qid=1329161802&sr=1-8對於中級到高級,喬Celko有很多好的SQL書籍http://www.amazon.com/s/ref=nb_sb_ss_i_2_7?url=search-alias%3Dstripbooks&field-keywords=joe+celko%27s+sql+for+smarties&x= 0&y = 0&sprefix = Joe + Cel%2Cstripbooks%2C190對於關係理論,DB Design,CJ Date是整個領域的父親。 – 2012-02-13 19:35:58

1

我不知道oracle的語法,但是MSSQL是由(名稱)組成的,並且min值就可以做到這一點,以及你已經在做的事情。

+0

感謝您的回答。 – Nomad 2012-02-13 04:25:35