作者cloudsan (趴千)
看板Database
標題Re: [SQL ] 語法請教
時間Sun Mar 24 07:10:50 2013
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