Py学习  »  DATABASE

返回MySQL中最大值(多个)的行

mreddy • 6 年前 • 1520 次点击  

我有以下问题:

select
    a.dormid, a.student_capacity, count(*) as num
from
    (select
       d.dormid, 
       d.dorm_name, 
       d.student_capacity, 
       h.amenid
     from
       (Dorm d left join Has_amenity h 
       on d.dormid=h.dormid)
    ) a
group by a.dormid, a.student_capacity

结果如下:

+--------+------------------+-----+
| dormid | student_capacity | num |
+--------+------------------+-----+
|    109 |              128 |   8 |
|    104 |              256 |   3 |
|    160 |              400 |  12 |
|    100 |               85 |   5 |
|    117 |               40 |   1 |
|    110 |              116 |   5 |
|    140 |              355 |   6 |
+--------+------------------+-----+

我只想得到具有最大“num”值的宿舍ID和学生容量行(但允许绑定,所以我不能将行限制为1)。 所以在这种情况下,返回 [160, 400, 12] .

我该如何处理?我试过放 where num = max(num) 在代码之后,但那不起作用。我 使用 rank 函数和限制秩=1可能会有所帮助,但我不确定应该在哪里实现它。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/38425
 
1520 次点击  
文章 [ 3 ]  |  最新文章 6 年前