SQL语句中,Group by与Where共同使用时的注意事项。总提示“1111 - Invalid use of group function”

今天在查询一条数据时,查找某张表里某字段数量>1,写了如下SQL。一直报错提示“1111 - Invalid use of group function”

#错误写法
SELECT *
FROM 表名
WHERE count(字段A)>1
GROUP BY 字段A

百思不得姐,问了下JAVA攻城狮,跟我说得用Having,不能用Where。

#正确写法
SELECT *
FROM 表名
GROUP BY 字段A
HAVING count(字段A) > 1;

但是我记得Where和Group By明明是可以一起用的,然后度娘了一下。结果如下:

1.Group by与Where是否可以一起使用?  可以。

where肯定在group by 之前。 先对select xx from xx的记录集合用where进行筛选,然后再使用group by 对筛选后的结果进行分组。

 

2.Group by与Where一起使用时,Where不能使用聚合函数,需要使用Having进行分组。

having只能在group by的面后,对分组后的结果进行筛选。

 

3.当一个语句同时出现了where、group by、having、order by的时候,执行顺序如下:

1).where对数据做筛选。

2).group by对where结果进行分组。

3).having对group by分组后的数据进行筛选。 

4).order by针对group by的数据进行排序。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值