繁体   English   中英

SQL查询汇总的最大值

[英]SQL query max value of a summarize

我目前正在学习SQL,并且需要执行一些SQL查询。 我没有实现一个特定的查询。

哪些客户(总的来说)是最昂贵的订单?

结果必须返回同一个客户的所有订单的customeridtotal 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM