[英]SQL query max value of a summarize
我目前正在学习SQL,并且需要执行一些SQL查询。 我没有实现一个特定的查询。
哪些客户(总的来说)是最昂贵的订单?
结果必须返回同一个客户的所有订单的customerid
和total value
。
该表是:
Salesorderheader
:
salesorderid (int) customerid (int) totaldue (double)
1 32000 3.20000
我使用的数据库系统是Postgresql。 到目前为止,我得到的查询是:
SELECT totaldue, customerid
FROM salesorderheader
WHERE totaldue = (SELECT max(totaldue) FROM salesorderheader);
此查询是错误的,因为必须返回一个标记为total_value
的新值(同一客户的所有订单的总价值)或类似的值。
我知道那里必须将SQL函数sum()
与GROUP BY customerid)
结合使用,但是到目前为止,我未能实现正确的查询。
感谢您的时间。
注意:如果我违反了任何网站规则,或者该帖子重复,请立即联系我,我将立即删除该帖子
这为客户带来了最大的收益:
SELECT distinct max(totaldue) over (partition by customerid),customerid
FROM salesorderheader
order by 1 desc
;
这显示了所有客户端之间浪费最多的客户端:
select sum(totaldue) over (partition by customerid),customerid
FROM salesorderheader
order by 1 desc
limit 1
;
选择前1个customer_id,总和(total_due)
进入#top
来自salesorderheader
按customer_id分组
按sum(total_due)desc排序;
从#top t中选择*
内部加入salesorderheader soh
在soh.customer_id = t.customerid上;
放下桌子#top;
抱歉,我正在使用手机
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.