SQL-如何对重复计数结果求和

问题描述

我的查询存在一些问题。

我想对员工的位置进行分类并根据地区进行计数,这是我的查询:

SELECT
    (CASE 
        WHEN location = 'India' THEN 'Asia' 
        WHEN location  = 'Italy' THEN 'Europe' 
        WHEN location  = 'Singapore' THEN 'Asia' 
        WHEN location  = 'Australia' THEN 'Australia' 
        ELSE NULL 
     END) AS Region,COUNT(location) AS Total_person 
FROM
    Location_tbl 
GROUP BY
    location

结果如下:

  1. 亚洲= 1
  2. 欧洲= 1
  3. 亚洲= 1
  4. 澳大利亚= 1

我想要的结果是这样的:

  1. 亚洲= 2
  2. 欧洲= 1
  3. 澳大利亚= 1

你们能帮我解决问题的方法,以便我得到想要的结果。

解决方法

您需要在group by-

中添加自定义组
select 
CASE WHEN location in( 'India','Singapore') THEN 'Asia' WHEN location  = 'Italy' THEN 'Europe' WHEN location  = 'Australia' THEN 'Australia' END as Region,count(location) as Total_person from Location_tbl 
group by CASE WHEN location in( 'India','Singapore') THEN 'Asia' WHEN location  = 'Italy' THEN 'Europe' WHEN location  = 'Australia' THEN 'Australia' END
,
select 
    Region,count(Region) 
from 
    (select (CASE WHEN location = 'India' THEN 'Asia' WHEN location  = 'Italy' THEN 'Europe' WHEN location  = 'Singapore' THEN 'Asia' WHEN location  = 'Australia' THEN 'Australia' ELSE null END) as Region 
     from Location_tbl) tab 
group by 
    tab.Region
,
SELECT 
    location,CASE
        WHEN location = 'India' or 'Singapore' THEN 'Asia' 
        WHEN location = 'Italy' THEN 'Europe'
        WHEN location = 'Australia' THEN 'Australia'
        ELSE NULL
    END AS Region
FROM 
    Location_tbl
GROUP BY 
    location
ORDER BY 
    SUM(location);

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...