sql - 查找总和的最大值的子查询
问题描述
我有一个销售表,其中包含
date, store, weekly sales
我想找到每年销售额最高的商店。例如
year store total sales
2010 4 $2,000,000
2011 25 $1,000,000
我的子查询有效,但我找不到它的最大值
SELECT year, store, MAX(total_sales)
FROM (SELECT
date_part('year', date) AS year, store, SUM(weekly_sales)
FROM sales
GROUP BY year, store) AS total_sales
GROUP BY year, store;
解决方案
使用row_number()
:
SELECT year, store, total_sales
FROM (SELECT date_part('year', date) AS year, store, SUM(weekly_sales) as total_sales,
ROW_NUMBER() OVER (PARTITION BY date_part('year', date) ORDER BY SUM(weekly_sales) DESC) as seqnum
FROM sales
GROUP BY year, store
) ys
WHERE seqnum = 1;
推荐阅读
- javascript - Mongoose save() 不更新数据库
- python - 如何打开 replit 上传的图像文件?
- azure - 错误:从 WSL 尝试时不存在名称为“Aks_cluster_name”的上下文
- android - 为什么我的 mapbox 组件(在 Ionic 应用程序中)可以在浏览器/本地主机上运行,但当我将它带到我的 Android 模拟器时却不行?
- mysql - hibernate 和 mysql 和 Operand 应该包含 2 列
- java - 基本 httpurlconnection POST 请求失败,出现 401
- python - TypeError: '>=' 在 'str' 和 'int' 的实例之间不支持 - 尝试添加 int 以输入没有运气
- r - 在 R 的 for 循环中自动绘制嵌套数据帧
- c - Hot Patching 填充是否总是 16 的倍数?
- python - 为什么 Flask 应用程序在退出其 while 循环时仍在运行其线程?