从不同的行中检索最大值

时间:2016-02-20 11:41:02

标签: mysql

对不起,标题可能有点难以理解。我在学校学习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

1 个答案:

答案 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;

是。有时它真的可能是原油。