看板 Database 關於我們 聯絡資訊
adxis有提到的row_number SELECT c1,c2 FROM ( SELECT *,ROW_NUMBER() OVER (PARTITION BY c1 ORDER BY c2 DESC) rn FROM table1 ) AS Der WHERE rn<=2 要考慮的的就是效能的點囉 ※ 引述《eplis (Eplis)》之銘言: : 想下sql語法查詢卻不知道該怎麼做 : 這邊想請各位前輩指導,不需要完整的指令 : 只求可能會用到或者可用的關鍵字即可 : 我的需求如下: : column1 column2 : A 112 : A 110 : A 105 : A 75 : B 23 : B 95 : B 45 : 我想要分別取出 A 和 B 的前2筆高的值, : 當然取前兩筆高的值我會先進行 order 再用 top 2 指令 : 只是分別以 A 和 B 這個動作我不知道該用甚麼語法,因為資料量龐大 : 所以不能以寫死 column='A' 這種方式.. : 我希望結果是 : A 112 : A 110 : B 95 : B 45 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.75.131.106
qwertmn:沒用過這語法.. 受教XD 03/24 11:36
adxis:相對 union 應該會好點,至少是 1 scan 只是 row_num 的實作 03/24 16:46
adxis:我就不知道花費多高了 03/24 16:46
swpoker:這種語法都跟DB種類不同而不同~所以DB是那套呢 03/25 09:12
cloudsan:上百萬筆的話應該會很慢 03/26 00:03