2013-08-22 51 views
0

我想通过声明只显示该组中的最大组;只显示组中的最大计数

SELECT COUNT(type) AS booking, type FROM booking b, room r WHERE r.rno = b.rno AND r.hno = b.hno GROUP BY type; 

我修改了它,所以我们现在可以看到这个查询响应,您可以看到组double大于家族。

预订类型


 5 double 
    2 family 

我知道只有一个计数相比号,所以我可以做COUNT(型),具有HAVING关键字,您可以为了显示添加> 2或类似,但这不是很有活力,因为我知道这两个数字,所以只能在这种情况下工作。

+0

请指定您的数据库版本 - 答案取决于它。 –

回答

2

有这不是一个having声明。但你可以使用子查询rownum

select t.* 
from (SELECT COUNT(type) AS booking, type 
     FROM booking b join 
      room r 
      on r.rno = b.rno AND r.hno = b.hno 
     GROUP BY type 
     order by count(type) desc 
    ) t 
where rownum = 1; 
+0

@JeffreyKemp。 。 。这没有道理,做到了。我改变了我的意图。 –

+0

这更好:) - 删除我的评论 –

3

ORDER BY COUNT(类型)DESC LIMIT 1

1

只是为了查询..

为了通过预订递减

问候

1

试试这个

SELECT COUNT(type) AS booking, type FROM booking b, room r WHERE r.rno = b.rno AND r.hno = b.hno ORDER BY type DESC LIMIT 1