sql - SQL 视图:查找每天的最大交易量
问题描述
我有一个具有以下架构的表:
CREATE TABLE Sales (
"Date" date,
ID char(3),
Volume integer not null check (Volume >= 0),
primary key ("Date", ID)
;
Date是产品的销售日期,ID是产品的id,Volume是当天销售的产品数量。这是输入数据库的样本数据:
Date | ID | volume
------------+------+---------
2012-01-03 | AAA | 100
2012-01-03 | BBB | 50
2012-01-03 | CCC | 356
2012-01-04 | AAA | 66
2012-01-04 | CCC | 99
2012-01-15 | BBB | 210
我想找出每天销售量最大的产品。
预期输出如下:
Date | ID | volume
------------+------+---------
2012-01-03 | CCC | 356
2012-01-04 | CCC | 99
2012-01-15 | BBB | 210
我尝试了以下代码,但它给出了错误的输出:
create or replace view Sales("Date", ID, volume) as
select a."Date", a.ID, max(a.volume)
from Sales a
group by a."Date", a.ID
;
我觉得组 a.ID 部分有问题,但我不确定。非常感谢任何帮助,谢谢!
解决方案
第一组按日期获取最大音量,然后加入表以获取与每个最大音量对应的行:
select s.*
from sales s inner join (
select "Date", max(Volume) maxVolume
from sales
group by "Date"
) g on g."Date" = s."Date" and g.maxVolume = s.Volume
order by s."Date"
推荐阅读
- ios - 如何截断歌曲名称中的 .wav 和下划线
- php - 无法显示 PDF BLOB 并使用 FPDF 写入文本水印
- azure - Azure Pipelines - 将自定义变量设置为内部版本号
- javascript - 当一个组件重新渲染时,它里面的所有变量都重新定义了吗?
- bluetooth-lowenergy - 强制 BLE 广告使用公共 mac 地址
- android - Gradel 同步意外失败
- flutter - Flutter - 一个主页的多个主体
- r - 从报纸网站上抓取图像
- java - 正则表达式单字符用户名验证
- python - Python:__dict__ 显示类对象的类属性,即使 __init__ 内部的行为改变了类属性