我对我的查询有一些问题。
我想对员工位置进行分类,并根据区域对其进行计数,这里是我的查询:
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结果是这样的:
G 210
我想要的结果是:
你们能帮我修复我的查询吗?这样我就能得到我想要的结果了。
发布于 2020-10-15 04:10:30
您需要在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发布于 2020-10-15 04:16:36
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发布于 2020-10-15 04:36:57
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);https://stackoverflow.com/questions/64364678
复制相似问题