MYSQL / SQL несколько псевдонимов на основе значений столбцов - PullRequest
0 голосов
/ 21 апреля 2020

У меня есть три таблицы: состояния (идентификатор, имя); больницы (id, name, level_id, state_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

1 Ответ

1 голос
/ 21 апреля 2020

Это то, что вы хотите?

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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...