作者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
1F:推 qwertmn:没用过这语法.. 受教XD 03/24 11:36
2F:推 adxis:相对 union 应该会好点,至少是 1 scan 只是 row_num 的实作 03/24 16:46
3F:→ adxis:我就不知道花费多高了 03/24 16:46
4F:→ swpoker:这种语法都跟DB种类不同而不同~所以DB是那套呢 03/25 09:12
5F:→ cloudsan:上百万笔的话应该会很慢 03/26 00:03