对不起,标题可能有点难以理解。我在学校学习MySQL,但现在我被困在练习中,我无法在任何地方找到解决方案(虽然我100%肯定它是's'在那里,我无法找到它。)
无论如何,我有一些医疗部门的表格,名称为精神病学,外科医生和皮肤科医生。外科医生和精神病学领域都有2名医生,皮肤科医生只有一名。我应该得到医疗最多的地区的名称,这很简单。我遇到的问题是我无法出现两个区域,只有其中一个或全部区域。这是我的代码:
select speciality, count(*)
from medics
group by speciality
order by count(*);
我也尝试过:
select max(total), speciality
from
(select speciality, count(*) as 'total' from medics
group by speciality
order by count(*))
as test
group by speciality;
编辑:这是我必须从中获取数据的表:
cod_hospital dni apellidos epecialidad
4 22233311 Martínez Molina, Gloria PSIQUIATRA
2 22233322 Tristán García, Ana CIRUJANO
2 22233333 Martínez Molina, AndrEs CIRUJANO
4 33222111 Mesa del Castillo, Juan DERMATOLOGO
1 66655544 Castillo Montes, Pedro PSIQUIATRA
这是预期的结果。 " 1 - DERMATOLOGO"结果不应该出现在那里,因为那不是最多医生的专长:
max(total) especialidad
2 CIRUJANO
2 PSIQUIATRA
答案 0 :(得分:5)
E.g:
SELECT a.*
FROM
(SELECT especialidad,COUNT(*) total FROM medics GROUP BY especialidad) a
JOIN
(SELECT COUNT(*) total FROM medics GROUP BY especialidad ORDER BY total DESC LIMIT 1) b
ON b.total = a.total;
是。有时它真的可能是原油。