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

时间:2013-02-11 14:40:48

标签: sql count multiple-columns

我尝试计算任一列中值的次数。 如果该值在同一行的两个列中,则只应计为一个。

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

' henrik'应该是3。 我试图计算和分组,但没有任何成功。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

试试这个:

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

这会给你:

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