MySQL COUNT有和没有HAVING子句

时间:2013-10-24 13:42:20

标签: mysql

我需要知道查询的COUNT,以及使用HAVING子句的相同查询

作为说明(不是真实情况,而是说明性的),如果表 pupilTable 包含 pupil 及其的列表,我想知道班级的数量,以及超过25个孩子的班级数量:

我知道我可以使用以下方式获取课程总数:

SELECT COUNT( * ) AS NumAllClasses FROM pupilTable GROUP BY class

我知道我可以使用以下条件获得大班的数量:

SELECT COUNT( * ) AS NumBigClasses FROM pupilTable GROUP BY class HAVING COUNT(pupil) > 25

是否有一种简单(单一查询)方式同时获取两者?谷歌不是我的朋友:(

编辑添加说明性数据

2 个答案:

答案 0 :(得分:0)

没有任何验证:

SELECT COUNT(*) AS count1 FROM table WHERE condition UNION ALL
SELECT COUNT(*) AS count2 FROM table WHERE condition HAVING second-condition

但请注意,我猜第二个标签会丢失,因此您将在标签count1下返回两个count-nrs

答案 1 :(得分:0)

您可以使用以下查询:

    select count(users.id) count1, count(u.id) count2 from users left join users u on users.id = u.id and u.fname = "abc" where users.id > 10

在这里,我使用了两个条件。您需要在此查询中进行相关更改才能获得所需的输出。

这里,用户。和你。是条件。

在上面的查询中,

user.<condition1> : u.fname = "abc"
u.<condition2> : users.id > 10