问题描述
|
我已经尝试了几个小时,但是无法使用DB2来执行查询。
从公司和用户表中,我有以下公司/用户的票务数量信息
user company quantity
------------ ------------ ------------
mark nissan 300
tom toyota 50
steve krysler 80
mark ford 20
tom toyota 120
jose toyota 230
tom nissan 145
steve toyota 10
jose krysler 35
steve ford 100
这是由查询生成的:
SELECT T.USER,COUNT(T.USER) AS QUANTITY,T.COMPANY FROM TICKET T
INNER JOIN COMPANY P ON P.COMPANY = T.COMPANY
GROUP BY (T.USER,T.COMPANY) -- ORDER BY QUANTITY DESC
我想看到的是每个公司的最大用户,因此鉴于上述数据,查询应向我显示:
user company quantity (Top user per company)
------------ ------------ --------------------------------
mark nissan 300
jose toyota 230
steve ford 100
steve krysler 80
如何编写SQL以返回此结果?
最终答案(在评论中注明):
SELECT user,quantity,company
FROM (SELECT user,company,RANK () OVER (PARTITION BY company ORDER BY quantity DESC) AS r
FROM (SELECT T.USER,T.COMPANY
FROM TICKET T JOIN COMPANY P ON P.COMPANY = T.COMPANY
GROUP BY (T.USER,T.COMPANY) ) s ) t
WHERE r = 1;
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)