mysql - 从 mysql 中的数据库中获取 max(top some things data)

标签 mysql max

伙计们,我想从下表中获取特定年份的前 3 大疾病及其计数。我应该运行什么查询?

mysql> select id,dname,d_id,entrydate from patient_master;    
+----+------------------+------+------------+    
| id | dname            | d_id | entrydate  |     
+----+------------------+------+------------+          
|  1 | Root Canal       |    1 | 2012-08-02 |         
|  2 | Cosmetic Filling |    3 | 2012-05-10 |   
|  3 | Root Canal       |    1 | 2012-05-25 |   
|  4 | High BP          |    6 | 2012-07-09 |    
|  5 | Root Canal       |    1 | 2012-07-10 |      
|  6 | Normal Filling   |    2 | 2012-05-10 |     
|  7 | Maleria          |    4 | 2012-07-10 |    
|  8 | Maleria          |    4 | 2012-07-12 |    
|  9 | Typhoid          |    5 | 2012-07-12 |    
+----+------------------+------+------------+    
9 rows in set (0.00 sec)

最佳答案

使用 group by 子句按疾病组合结果,并使用 count(*) 计算每种疾病的记录数。然后您可以从最大到最少排序并使用 limit 3 只获得前 3 个。我还包含一个 where 子句以仅过滤 2012 中的记录

  select count(*), dname
    from patient_master
   where entrydate between '2012-01-01' and '2013-01-01'
group by dname
order by count(*) desc
   limit 3

演示:http://www.sqlfiddle.com/#!2/89c06/6

关于mysql - 从 mysql 中的数据库中获取 max(top some things data),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11618460/

相关文章:

asp.net - C# - 从列表中计算最小日期/最大日期

mysql: select max(score) 不返回相关行数据

mysql - SQL更新触发器加减

mysql - 选择 SQL 之间的日期。其中日期的格式为 dd/mm/yyyy 并且是一个字符串

python - Django:如何查询多个表中的多个字段

SQL 按每组的局部最大值对结果进行排序

android - 如何设置日期选择器的最大和最小限制?

Java BigDecimal CompareTo 不适用于小数字

javascript - 使用ajax将数据发布到当前php页面

php - 如何在 MySQL 中存储共享同一列的多个值?