我有一个这样的表:
-------------------------------
EMP ID|Country |Emp Level |
------|-----------|-----------|
102 |UK |Staff |
103 |US |Admin Staff|
104 |CA |Staff |
105 |NL |Admin Staff|
106 |MN |Intern |
107 |IN |Staff |
108 |UK |Staff |
109 |US |Admin Staff|
110 |IN |Admin Staff|
------------------------------
在给定以下条件的情况下,我需要计算每个国家/地区每个类别中的员 worker 数:如果国家/地区不在 ('UK' or 'US' or 'CA')
中,则将其视为 '全局的'。所以我们的答案应该是:
------------------------------
|Country |Emp Level |Count|
|-----------|-----------|-----
|UK |Staff |2
|US |Admin Staff|2
|CA |Staff |1
|Global |Admin Staff|2
|Global |Intern |1
|Global |Staff |1
到目前为止,我可以计算每个类别中每个国家/地区的员工数量,但无法将不在给定集合中的国家/地区归为一类,并将它们计算并显示为全局。
最佳答案
SELECT Country, EmpLevel, COUNT(*) AS Count
FROM my_table
WHERE Country IN ('UK', 'US', 'CA')
GROUP BY Country, EmpLevel
UNION
SELECT 'Global', EmpLevel, COUNT(*) AS Count
FROM my_table
WHERE Country NOT IN ('UK', 'US', 'CA')
GROUP BY EmpLevel
查看sqlfiddle .
关于mysql - 将国家分组并计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18868234/