sql取每个分组的第一行数据

上传人:xiao****1972 文档编号:84087581 上传时间:2019-03-02 格式:DOC 页数:2 大小:22.50KB
返回 下载 相关 举报
sql取每个分组的第一行数据_第1页
第1页 / 共2页
sql取每个分组的第一行数据_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《sql取每个分组的第一行数据》由会员分享,可在线阅读,更多相关《sql取每个分组的第一行数据(2页珍藏版)》请在金锄头文库上搜索。

1、sql取每个分组的第一行数据.txt35温馨是大自然的一抹色彩,独具慧眼的匠师才能把它表现得尽善尽美;温馨是乐谱上的一个跳动音符,感情细腻的歌唱者才能把它表达得至真至纯1 -建立测试环境 CREATE TABLE table1(a VARCHAR(10),b VARCHAR(10),c VARCHAR(10); -插入数据 INSERT INTO table1 VALUES(2004,12,storea); INSERT INTO table1 VALUES(2005,07,storea); INSERT INTO table1 VALUES(2004,11,storeb); INSERT I

2、NTO table1 VALUES(2005,06,storeb); COMMIT;2 取分组记录的第一条解法一SELECT a.* FROM table1 a INNER JOIN ( SELECT MAX(a + b)TIME FROM table1 GROUP BY c ) b ON a.a + a.b = b.TIME 解法二SELECT * FROM scott.table1 a WHERE NOT EXISTS (SELECT 1 FROM scott.table1 b WHERE a.a=b.a AND TO_NUMBER(a.b)TO_NUMBER(b.b);解法三SELECT

3、 * FROM (SELECT t.*, RANK() OVER (PARTITION BY t.a ORDER BY t.b DESC) AS drankFROM table1 t) a WHERE drank=1引申SELECT t.*,SUM(b) OVER (PARTITION BY t.a) AS aaa, SUM(b) OVER () AS bbbFROM table1 tORDER BY t.a,t.bSELECT d.department_id , e.last_name, e.salary, RANK() OVER (PARTITION BY e.department_id ORDER BY e.salary) AS drankFROM employees e, departments dWHERE e.department_id = d.department_id AND d.department_id IN (60, 90);

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号