mysql - 将国家分组并计数

标签 mysql sql sql-server database

我有一个这样的表:

-------------------------------
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/

相关文章:

sql - 数据库表中 ID 列的命名

mysql - SQL 创建表错误

php - 单击按钮时转到下一页并刷新上一页 Jquery Mobile

PHP PDO : Undefine variable

MySQL 将行转为动态数量的列

c# - 如何将变量传递到 SqlCommand 语句并插入到数据库表中

php - 刷新、锁定 MySQL 表和复制数据文件夹

SQL Server - 从子查询中按名称排序

sql-server - 即使使用 Unicode 源和目标 (SSIS),字符也会显示不正确

java - 在 Visual Studio Code 中部署 Azure Function 不包含 .jar 文件