sql - SQL Server - 获取去年平均值、当年月平均值和当年总平均值
问题描述
我在 SQL Server 中运行一个简单的查询,以获取按月分组的当年平均值,因此它返回 12 行。我需要在第一行输入去年的 TOTAL 平均值,在最后一行输入当年的 TOTAL 平均值,所以它会变成 14 行。
这是我的查询:
SELECT
COUNT(*) AS mes
FROM
WorkOrder
WHERE
workOrderSource = '02'
AND YEAR(workOrderDate) = 2018
AND conclusionDate IS NULL
GROUP BY
MONTH(workOrderDate);
我应该如何传递动态年份,并将 2 个额外的行添加到我的查询中,其中包含过去和当前年份的总计?
结果应该有 14 行;第一行是去年 TOTAL 的平均值,最后一行是当年 TOTAL 的平均值
解决方案
以这种方式尝试:
SELECT COUNT(*) AS mes, null
FROM WorkOrder
WHERE workOrderSource = '02'
AND YEAR(workOrderDate) = 2018
AND conclusionDate IS NULL
UNION ALL
SELECT COUNT(*), MONTH(workOrderDate)
FROM WorkOrder
WHERE workOrderSource = '02'
AND YEAR(workOrderDate) = 2019
AND conclusionDate IS NULL
GROUP BY ROLLUP(MONTH(workOrderDate))
ORDER BY COALESCE(MONTH(workOrderDate), 13)
推荐阅读
- c++ - 如何提高浮点二阶导数计算的精度?
- javascript - 如何在for循环中排除除一个之外的所有元素?
- c - glibc 使用内核函数
- reactjs - 材料 ui 文本字段类型日期,最小值不起作用
- javascript - Cant' access async nested json in state,得到“TypeError:无法读取未定义的属性'XX'”的错误
- c# - 仅将 SignalR 用于用户会话
- php - 如何停止暴力攻击以保护文件夹内的文档安全?
- ubuntu - 如何确保 Livenes/Readiness 探测使用 http 而不是 https 完成
- apache-kafka - 使用消息时的 Apache Kafka 清理
- angular - Angular:如何根据验证器正确查找和添加类到角度元素