簡體   English   中英

MYSQL /SQL 多別名基於列值

[英]MYSQL /SQL multiple alias base on column values

我有三個表:狀態(id,name); 醫院(id、name、level_id、state_id); 級別(ID,名稱)。 表格(級別)顯示了每家醫院的質量。 一個州可以有幾家具有不同服務質量(級別)的醫院。 我想實現一個 MySQL 查詢,如下所示

表:

等級

id| name    |  
1 | level 1 |  
2 | level 2 | 
3 | level 3 |

醫院

id| name | level_id | state_id  
1 | Hos A| 1        | 22  
2 | Hos B| 3        | 7   
3 | Hos C| 2        | 13  
...

結果:

states | level 1 | level 2| level 3 | total
state 1| 0       | 1      | 1       | 2
state 2| 3       | 4      | 7       | 14  
...

我在這條線上嘗試了一些東西,但只是卡住了。 任何幫助將不勝感激

SELECT state.name states, hos.level_id 'level 1', hos.level_id 'level 2', hos.level_id 'level 3'
FROM state

LEFT JOIN hospital hos ON hos.state_id = state.id

ORDER BY state.name

這是你想要的嗎?

select state,
       sum(level_id = 1) as num_1,
       sum(level_id = 2) as num_2,
       sum(level_id = 3) as num_3,
       count(*) as total
from hospitals h
group by state;

暫無
暫無

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

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