简体   繁体   English

MS SQL:将条目计为多列中的一个

[英]MS SQL: Count entries as one in multiple columns

I try to count how many times a value is in either column. 我试着计算任一列中值的次数。 If the value is in both colums on the same row, it should only be counted as one. 如果该值在同一行的两个列中,则只应计为一个。

     |   a     |    b 
########################
1    | henrik  | hans
2    | anne    | henrik
3    | peter   | finn
4    | henrik  | henrik
5    | hans    | anne

The count for 'henrik' should be 3. I have tried to count and group, but without any succes. 'henrik'的计数应为3.我已经尝试计算和分组,但没有任何成功。

select count(*)
from   table
where  a = 'henrik' or b = 'henrik'

Try this: 尝试这个:

SELECT ab, COUNT(DISTINCT id) AS 'Count'
FROM
(
    SELECT id, a AS ab FROM table1
    UNION ALL
    SELECT id, b       FROM table1
) AS T
GROUP BY  ab;

SQL Fiddle Demo . SQL小提琴演示

This will give you: 这会给你:

|     AB | COUNT |
------------------
|   anne |     2 |
|   finn |     1 |
|   hans |     2 |
| henrik |     3 |
|  peter |     1 |

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM