DB2排名第一

问题描述

| 我已经尝试了几个小时,但是无法使用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 (将#修改为@)