是否需要在select指令上使用聚合函数?

时间:2017-02-02 10:35:08

标签: mysql sql select having

我们说我有一张桌子

  

InspectLog(userid,attr1,attr2)

我想知道检查次数超过5次的用户的用户ID。

这是我到目前为止所得到的:

SELECT I.userid
 FROM InspectLog I
 GROUP BY I.userid
 HAVING Count(*) >5;

我的问题是,正如我在使用having时看到很多示例时,他们也会在select指令中调用Count()

SELECT I.userid, Count(*) AS c
 FROM InspectLog I
 GROUP BY I.userid
 HAVING Count(*)>5;

having是否需要在select指令的开头使用聚合函数?输出是否相同。从我得到的结果来看,在这种情况下有一个额外的c列会有所不同。但是,HAVING上的Count()会在没有第一个的情况下正常工作吗?

1 个答案:

答案 0 :(得分:1)

简答:不,您不需要在Select Clause中添加“Count()”。

它只会在结果中添加一个额外的列。