1

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

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

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

4

2 回答 2

2
select count(*)
from   table
where  a = 'henrik' or b = 'henrik'
于 2013-02-11T14:42:36.117 回答
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 小提琴演示

这会给你:

|     AB | COUNT |
------------------
|   anne |     2 |
|   finn |     1 |
|   hans |     2 |
| henrik |     3 |
|  peter |     1 |
于 2013-02-11T14:46:12.990 回答