簡體   English   中英

需要SQL查詢以根據計數基於條件獲取數據

[英]Need a SQL query to get data based on condition based on count

我有名為areadetailstate表。

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表示RURAL2表示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

SQLFiddle演示

選擇名稱,農村,城市

來自(

選擇狀態,總和(區域= 1然后1或0結束時的情況)'鄉村',總和(區域= 2然后1其他0結束時的情況)'城市'

來自#Area

按國家分組

)A.state = S.state上的連接狀態S.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM