我正在尝试计算可能出现在3个不同列中的值,但只需要计算唯一值。 Microsoft SQL。 例如。值X可能出现在A,B或C列或全部3中,但需要确保我只获得值X的唯一计数,无论它是什么列。
谢谢!
答案 0 :(得分:0)
这是你在找什么?这将计算每行只发生一次,无论它找到多少列。
SELECT
ID
,SUM(CASE WHEN ColA = 'X' OR ColB = 'X' OR ColC = 'X' THEN 1 ELSE 0 END) AS ValueCount
FROM
TABLENAME
GROUP BY
ID
我想我应该在没有小组的情况下展示它,因为你没有指定分组。
SELECT
,SUM(CASE WHEN ColA = 'X' OR ColB = 'X' OR ColC = 'X' THEN 1 ELSE 0 END) AS ValueCount
FROM
TABLENAME
答案 1 :(得分:0)
如果您想计算任何列X
,A
或B
中每个C
的出现次数,那么工作:
SELECT
SUM(CASE WHEN A = 'X' THEN 1 ELSE 0 END) +
SUM(CASE WHEN B = 'X' THEN 1 ELSE 0 END) +
SUM(CASE WHEN C = 'X' THEN 1 ELSE 0 END)
FROM yourTable