sql - 加入选择从同一字段中获取两列,创建两个具有不同条件的字段
问题描述
我如何加入这两个选择并在一个列上获得该年每个团队的 Sum(hr) 和在不同列上获得同一年所有团队的 Sum(hr)?
select yearID, TeamID, sum(HR) as TeamTHR
from vwPlayersBatting
group by yearID,teamID
order by yearID
select YearID, sum(hr) as tt
from vwPlayersBatting
group by yearID
order by yearID
解决方案
您将使用SUM OVER
以下方式显示年度总数:
select
yearid,
teamid,
sum(hr) as teamthr
sum(sum(hr)) over (partition by yearid) as tt
from vwplayersbatting
group by yearid, teamid
order by yearid, teamid;
示例输出:
年号 | 团队ID | 团队| tt --------+--------+---------+-------- 2019 | 1 | 10 | 30 2019 | 2 | 20 | 30 2020 | 1 | 50 | 50
如果你想要这个:
年号 | teamthr (团队 1) | teamthr (团队 2) | tt --------+------------------+------------------+---- --- 2019 | 10 | 20 | 30 2020 | 50 | 0 | 50
这不能单独使用 SQL 来完成。您需要动态 SQL(即从预先选择的数据构建最终查询)或使用您的应用程序/网站在 SQL 结果的循环中填充网格。
推荐阅读
- python - Python 多处理运行自己而不是导入的脚本
- spring - JPA 实体默认构造函数覆盖 n-args 构造函数
- java - Eclipse 创建的 jar 文件无法运行
- python - 使用 matplotlib 从 pandas 数据框中绘制特定数据
- list - 如何动态地将数据添加到这样的列表中 [Dart]
- javascript - 如何在本地机器上运行 puppeteer 24/7
- swift - 在应用程序之间共享核心数据。应用程序组、iCloud
- javascript - 从另一个 Hook 访问 setState 方法
- javascript - 将 API 数据推送到 Chart.js
- python - python cuDF groupby 适用于有序数据