我有一个名为areadetail
和state
的表格。
areadetail
包含以下列:
State Id
Area Id-rural(1) or urban(2)
Population
示例数据:
Stateid AreaID Population
1 1 10
1 2 20
1 2 20
2 1 10
2 2 20
3 1 10
State
表包含以下列:
State name and state id
示例数据:
State Id StateName
1 Delhi
2 Mumbai
3 Jaipur
现在我需要一个查询来显示
之类的记录State name Rural Urban
------------------------------------------
Delhi 3 2
Mumbai 1 1
Jaipur 1 0
答案 0 :(得分:1)
我猜AreaID=1
表示RURAL
而2
表示URBAN
然后尝试此查询:
SELECT
MAX(s.StateName),
SUM(CASE WHEN ad.AreaID=1 THEN ad.Population ELSE 0 END) as Rural ,
SUM(CASE WHEN ad.AreaID=2 THEN ad.Population ELSE 0 END) as Urban
FROM State as s
LEFT JOIN areadetail as ad on s.Stateid=ad.Stateid
GROUP BY s.Stateid
答案 1 :(得分:0)
选择姓名,农村,城市
这 (
选择状态,总和(区域= 1然后1其他0结束的情况)'农村',总和(区域= 2然后1的情况) 其他0结束)' Urban'
<#>来自#Area按州分组
)A 加入州S. 在A.state = S.state