[英]Need a SQL query to get data based on condition based on count
我有名為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
我猜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然后1或0結束時的情況)'鄉村',總和(區域= 2然后1其他0結束時的情況)'城市'
來自#Area
按國家分組
)A.state = S.state上的連接狀態S.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.