sql-server - 分组平均值
问题描述
假设我在下面有这个查询,它选择所有部门并在日期落在WHERE
子句中指定的这 3 个日期中的任何一个时获取值。
SELECT
Sector
,Val
FROM [Consumption] upc
WHERE upc.PeriodStart = '2020-12-07 17:00:00'
OR upc.PeriodStart = '2021-01-07 17:30:00'
OR upc.PeriodStart = '2021-02-10 18:00:00'
当前结果:
Sector Val
Retail 53.4
Retail 58.1
Retail 60.5
Commercial 58.2
Commercial 60.6
Commercial 53.5
我将如何获得按部门分组的值之间的平均值乘以 2,以便结果如下所示?
预期结果:
Sector Val AvTot
Retail 53.4 114.67
Retail 60.5 114.67
Retail 58.1 114.67
Commercial 58.2 114.87
Commercial 60.6 114.87
Commercial 53.5 114.87
解决方案
窗口化AVG()
返回预期结果:
SELECT Sector, Val, AVG(Val * 2) OVER (PARTITION BY Sector) AS AvgTotal
FROM (VALUES
('Retail', 53.4),
('Commercial', 58.2),
('Retail', 60.5),
('Commercial', 60.6),
('Commercial', 53.5),
('Retail', 58.1)
) [Consumption] (Sector, Val)
ORDER BY Sector
结果(没有四舍五入和/或铸造):
Sector Val AvgTotal
--------------------------
Commercial 58.2 114.866666
Commercial 60.6 114.866666
Commercial 53.5 114.866666
Retail 60.5 114.666666
Retail 58.1 114.666666
Retail 53.4 114.666666
推荐阅读
- progressive-web-apps - 工作箱后台同步无法匹配正则表达式
- mysql - 拆分列并在sql中的新列中显示
- python - 为什么 UnicodeText 在 SQLALchemy 中被更改为 TEXT 并在与 MariaDB 一起使用时出现操作错误?
- python - SQLAlchemy:跨模式的 ForeignKey
- angular - 终端错误:架构验证失败,出现以下错误:数据路径“['polyfills']”应该是数组
- azure - 即使从门户中删除,逻辑应用工作流也会继续发布消息
- javascript - Redux 状态正在更新,但字段和值没有相应更新。调度 EDIT.USER.VALUE 时有一个带有索引的额外未定义字段
- javascript - 为什么 Jest 在测试“Colyseus”游戏时会出现这个错误?
- visual-studio-code - 如何禁用 VS Code 资源管理器的自动滚动?
- php - PHP网站标题第一次不起作用(在服务器上部署后)