我知道有关此错误消息的问题已经被提出,但我找不到任何真正适合我的问题。
我有一个包含三列(A,B,C)的表,其中包含不同的值,我需要识别所有相同的组合。例如,表A"表A"下面:
| A | B | C |
| 1 | 2 | 3 |
| 1 | 3 | 3 |
| 1 | 2 | 3 |
| 2 | 2 | 2 |
| 1 | 3 | 3 |
......我想得到"表B"下面:
| A | B | C | count |
| 1 | 2 | 3 | 1 |
| 1 | 3 | 3 | 1 |
| 2 | 2 | 2 | 1 |
(我需要最后一栏"计算"每行1,以备日后使用)
当我尝试使用A,B,C""我收到标题中提到的错误。任何帮助将不胜感激!
仅供参考,我不认为这确实改变了这个问题,但是"表A"从另一个表中获得:" SOURCE_TABLE",得益于对类型的查询:
select (case when ... ),(case when ...),(case when ...) from SOURCE_TABLE
我需要建立"表B"只有一个查询。
答案 0 :(得分:1)
我认为你的目标是使用不同的
select distinct A,B,C, 1 [count] -- where 1 is a static value for later use
from (select ... from sourcetable) X
答案 1 :(得分:0)
听起来你有正确的想法。我的猜测是由于no-repeat
语句中的外部引用而发生错误。如果您将第一个查询包装在另一个查询中,则可能会缓解此问题。尝试:
CASE
重新阅读你的问题之后,似乎你根本就没有计算,只是把一个" 1"在每个不同的行之后。如果是这样,那么你可以试试:
SELECT A, B, C, COUNT(*) AS [UniqueRowCount]
FROM (
SELECT (case when ... ) AS A, (case when ...) AS B, (case when ...) AS C FROM SOURCE_TABLE
) AS Subquery
GROUP BY A, B, C
假设您的外部引用异常仅在您的聚合中发生,您还应该尝试:
SELECT DISTINCT A, B, C, [Count]
FROM (
SELECT (case when ... ) AS A, (case when ...) AS B, (case when ...) AS C, 1 AS [Count] FROM SOURCE_TABLE
) AS Subquery