【发布时间】:2019-06-19 18:22:47
【问题描述】:
我正在尝试编写一个按天分组的简单查询,用当天的“有效”和“运行”点的计数填充一列,并用所有“有效”点的计数填充另一列。所以结果列将是:“Day”、“RunNum”、“TotalNum”。它从包含“TheDate”、“Running”和“ValidPoint”列的表中读取。
我可以通过更改“FROM”语句来单独创建“RunNum”和“TotalNum”列以适应列的特定条件。但是,我是一个完整的 SQL 初学者,我需要一些关于如何从一个表中读取两个不同标准的指导。
这是我为创建 RunNum 所写的:
SELECT TheDate AS Day, count(Running) AS RunNum
FROM Source_Table
WHERE Running = "Runtime" AND ValidPoint = "yes"
GROUP BY TheDate;
这就是创建 TotalNum:
SELECT TheDate AS Day, count(Running) AS TotalNum
FROM Source_Table
WHERE ValidPoint = "yes"
GROUP BY TheDate;
我曾尝试使用this post 中概述的 SUM(CASE WHEN...) 方法,但是当我尝试运行它时它一直抛出语法错误消息:
SELECT TheDate As Day, SUM(CASE WHEN Running = "Runtime" THEN 1 ELSE 0 END) AS RunNum, COUNT(Running) AS TotalNum
FROM Source_Table
WHERE ValidPoint = "yes"
GROUP BY TheDate;
我怀疑我需要在 from 语句中使用表“别名”,但到目前为止我所读到的关于它们的所有内容都令人困惑。对于进一步研究的正确方向的任何帮助或指导将不胜感激。感谢您抽出宝贵时间阅读本文!
【问题讨论】: