1

いずれかの列に値が何回あるかを数えようとします。値が同じ行の両方の列にある場合は、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 に答える