mysql统计某个指标之和大于指定值的记录

一、having与where的区别

where having
可以与update、delete、select一起使用 只能与select一起使用
在group by之前使用 group by之后使用
不一定要与group by一起使用 必须与group by一起使用
对表中的数据进行筛选 对聚合后的数据进行筛选
与单行数据的函数upper,lower等一起使用 与作用于多行的函数count、sum一起使用
   
   

 

 

二、条件查询

题目:查询出enbale之和大于10的modifier与enable总量

1、使用having

having在聚合后对记录进行筛选,表里面可以不存在此记录,where作为条件查询真实的表或者查询出来的表中必须有记录

select modifier,sum(`enable`) as total from api_info group by modifier having total>10

此处的having如果换成where就会报错

 

2、使用联合查询

SELECT DISTINCT
    (a.modifier),
    a1.total
FROM
    api_info a
RIGHT JOIN (
    SELECT
        modifier,
        SUM(`enable`) AS total
    FROM
        api_info
    GROUP BY
        modifier
) AS a1 ON a.modifier = a1.modifier
WHERE
    total > 10;

 

posted @ 2021-07-01 10:37  小橙籽  阅读(1418)  评论(0编辑  收藏  举报