mysql - MYSQL:如何获得数量总和的最大值?
问题描述
所以我有这个查询:
SELECT p.pub_name, t.title, YEAR(s.ord_date) AS YEAR, SUM(s.qty) AS "QTY SUM"
FROM publishers p JOIN titles t ON p.pub_id = t.pub_id
JOIN sales s ON t.title_id = s.title_id
GROUP BY p.pub_name, t.title, YEAR(s.ord_date);
以及此处的查询结果:
我如何只显示最高的QTY SUM
per pub_name
?
如下图所示,仅显示突出显示的行...
解决方案
您可以使用窗口函数:
SELECT pty.*
FROM (SELECT p.pub_name, t.title, YEAR(s.ord_date) AS YEAR, SUM(s.qty) AS sum_qty,
ROW_NUMBER() OVER (PARTITION BY p.pub_name ORDER BY SUM(s.qty) DESC) as seqnum
FROM publishers p JOIN
titles t
ON p.pub_id = t.pub_id JOIN
sales s
ON t.title_id = s.title_id
GROUP BY p.pub_name, t.title, YEAR(s.ord_date)
) pty
WHERE seqnum = 1;
推荐阅读
- amazon-web-services - 如何在管道堆栈创建中存储和使用参数以供以后创建无服务器堆栈
- mysql - 如何在一定数量的表中获取所有出现的外键?
- android - 我无法在通知中添加自定义声音
- laravel - 如何根据父类型关系的值将 eloquent 模型变形或强制转换为其中一个子模型
- java - ExoPlayer:不推荐使用 setNotificationListener
- azure - 如何通过日志文件的大小或日期格式限制 azure blob 日志记录
- postgresql - 为什么我的 db/structure.sql 文件在运行 db:structure:dump 后包含 CREATE SCHEMA 语句?
- java - 无法在android中单击按钮时显示textview
- jquery-ui - 水平可拖动图像库上的“容器”元素问题
- python - 在dict中获取列表的第二个元素