sql - 有没有办法根据其他 DISTINCT 列在一个列上选择总和,同时仅按第三列(日期)分组
问题描述
我有三列
年份 | 钱| ID 2020 100 01 2020 100 01 2019 50 02 2018 50 03 2020 40 04
结果应该是
年份 | 钱 | 总人数 2020 | 240 | 4
** 由于前两个 id 相同,我尝试如下
按年份从表组中选择年份、总和(金钱)、计数(不同的 id)
但结果显示 4 个人,这是正确但错误的总和,因为它正在计算所有的钱
解决方案
您可以聚合然后再次聚合:
select max(year), sum(money), count(*)
from (select distinct year, money, id
from t
) t;
推荐阅读
- dart - 尽管使用了 Dart 2.0,但不能省略 'new' 关键字
- s4sdk - 无法使用 Cloud SDK 通过 S/4Hana 上的 OData 查询 BAPI
- algorithm - 这种图形搜索有名称吗?
- python - OCR 空间 API Python 不打印文本
- unity3d - 如何在 Linux 上为 Unity 设置持续集成
- cpanel - cpanel 错误:您的帐户未启用此功能“”
- css - CSS flex-direction: column - 默认所有子元素为滚动内最宽子元素的宽度:自动
- python - 通过 Python 设置 Vicon 流设备
- android - 不支持 compileSdkVersion
- c - C 程序可以让字符鼠标悬停在 Windows 控制台中吗?