我尝试计算一个值在任一列中出现的次数。如果该值在同一行的两个列中,则应仅计为一个。
| a | b
########################
1 | henrik | hans
2 | anne | henrik
3 | peter | finn
4 | henrik | henrik
5 | hans | anne
'henrik' 的计数应该是 3。我尝试计数和分组,但没有任何成功。
我尝试计算一个值在任一列中出现的次数。如果该值在同一行的两个列中,则应仅计为一个。
| a | b
########################
1 | henrik | hans
2 | anne | henrik
3 | peter | finn
4 | henrik | henrik
5 | hans | anne
'henrik' 的计数应该是 3。我尝试计数和分组,但没有任何成功。
select count(*)
from table
where a = 'henrik' or b = 'henrik'
试试这个:
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;
这会给你:
| AB | COUNT |
------------------
| anne | 2 |
| finn | 1 |
| hans | 2 |
| henrik | 3 |
| peter | 1 |