SQL中,何时用havinf这个关键字

   1:

          因为where关键字无法与合计函数一起使用,例如sum(),avg()等,所以当有条件的话,需要放在having

    2:

        sql中的having语句是在使用group by的时候使用的。通常where语句是在group by之前做数据筛选的,而having语句是对 group by之后的结果进行筛选的。

例如:

从商品销售表里取得用户A购买的各种商品的总数:

SELECT
    SUM(TOTAL)
FROM
    COST
WHERE
    USERID = 'A'
GROUP BY 
    PRODUCTID

 

从商品销售表里取得用户A购买的各种商品的总数,并且改总数大于10:

SELECT
    SUM(TOTAL)
FROM
    COST
WHERE
    USERID = 'A'
GROUP BY
    PRODUCTID
HAVING
    SUM(TOTAL) > 10

        having与where最大的区别是having 能带聚合函数,而where不可以
         select emp_id from t group by emp_id having count(*) = 1 --正确
         select emp_id from t group by emp_id where count(*) = 1 --错误
       如果用where要达到这个,估计这样
       select t1.emp_id from (select emp_id,count(*) as cnt from t group by emp_id)t1 where t1.cnt=1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值