sql - 计算结果表中的其他列时如何显示列?
问题描述
我有一个 SQL Server 表,如下所示:
这是我从 MyTable 获取数据的查询:
SELECT COUNT(distinct Column1) AS CountCol1
FROM MyTable
WHERE ((CONVERT(CHAR, Column2, 104) = '27.09.2019')
OR (CONVERT(CHAR, Column2, 104) = '28.09.2019'))
在结果表中,我不仅要显示 Column1 的计数,还要显示 Column2 的值。
当我尝试将查询更改为:
SELECT COUNT(DISTINCT Column1) AS CountCol1, Column2 AS Col2
FROM MyTable
WHERE ((CONVERT(CHAR, Column2, 104) = '27.09.2019')
OR (CONVERT(CHAR, Column2, 104) = '28.09.2019'))
我收到一条错误消息:
列 'MyTable.Column2' 在选择列表中无效,因为它既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
请帮助我解决此问题并在我的结果表中显示 Column2。
解决方案
如果您的意图是获取 Column2 的每个唯一值的不同 Column1 的计数,则可以这样做:
SELECT Column2, COUNT(distinct Column1) AS CountCol1
FROM MyTable
GROUP BY Column2
HAVING (....)
WHERE (....)
推荐阅读
- java - 我可以让类加载器动态查找 Java 类吗?
- javascript - LAT 和 LNG 未显示在 HTML 的输入表单上
- c# - 这里的三元运算符条件是什么 (true ? x : 0)
- python - 如何一次检查多个变量的值?
- javascript - 为什么我不断收到“错误:必须提供 media_id 字段。” 使用 Twit NPM 时?
- java - 如何使用 Gradle 指定 JVM 选项?
- java - org.json.JSONException:字符 0 处的预期文字值
- java - Java 流 - 从地图列表中获取地图
- json - 如何将(Deno)服务器发送的 JSON 保存为 Kotlin 中的数据类模型?
- python - 如何使用 NumPy 制作二维锯齿状数组