【发布时间】:2017-09-16 06:33:15
【问题描述】:
我知道已经有人问过有关此错误消息的问题,但我找不到任何真正适合我的问题的问题。
我有一个包含不同值的三列(A、B、C)的表,我需要识别所有相同的组合。例如下面的“TABLE A”:
| A | B | C |
| 1 | 2 | 3 |
| 1 | 3 | 3 |
| 1 | 2 | 3 |
| 2 | 2 | 2 |
| 1 | 3 | 3 |
...我也想得到下面的“TABLE B”:
| A | B | C | count |
| 1 | 2 | 3 | 1 |
| 1 | 3 | 3 | 1 |
| 2 | 2 | 2 | 1 |
(我需要最后一列“count”,每行有 1 以供以后使用)
当我尝试使用“按 A、B、C 分组”时,我得到了标题中提到的错误。任何帮助将不胜感激!
仅供参考,我认为这并没有真正改变问题,但是“TABLE A”是从另一个表中获得的:“SOURCE_TABLE”,这要归功于以下类型的查询:
select (case when ... ),(case when ...),(case when ...) from SOURCE_TABLE
我需要只用一个查询来构建“表 B”。
【问题讨论】:
-
您可以发布您尝试过的确切查询吗?
-
您在第一个表中有两次 '1, 2, 3' 和 '1, 3, 3' 并且在所需结果表中该行的“计数”为“1”。这是一个错误,还是你真的想要每个独特排列后的“1”?如果是这样,那就不算什么了!
-
您使用的是哪个 DBMS?后格雷斯?甲骨文?
-
我正在研究 SQL Server Management Studio,它应该是每行 1,我在这个阶段没有计算任何东西。下面 Stugus 的解决方案帮助我解决了我的问题。感谢您的支持!
标签: sql sql-server group-by