wo56565

2019-03-04   阅读量: 591

Mysql

Mysql聚合函数对where语句筛选结果的影响

扫码加入数据分析学习群

select   create_date  FROM unlimited_user_history WHERE 1 != 1;

筛选结果为0件

但是用了聚合函数

select    MAX(create_date)  FROM unlimited_user_history WHERE 1 != 1;

即使where条件不满足,结果还是有1件;

这个很正常,第一个之所以返回0条,是因为1!=1 是不成立的,所以就没有结果集了。

而第2个,也是一样,where过滤1!=1也是没有数据,但是聚合函数就算在1条记录也没有的情况下,也会返回1一个值,那就是null

SQL中关于where后面不能放聚合函数(如sum等)的解决办法

我们在编写较为复杂的SQL语句的时候,常常会遇到需要将sum()放到where后面作为条件查询,事实证明这样是无法执行的,执行会报【此处不允许使用分组函数】异常。 那么如何解决呢,使用HAVING关键字 示例: select sum(amount)   from table group by clientId having sum(amount) >100

添加CDA认证专家【维克多阿涛】,微信号:【cdashijiazhuang】,提供数据分析指导及CDA考试秘籍。已助千人通过CDA数字化人才认证。欢迎交流,共同成长!
0.0000 0 5 关注作者 收藏

评论(0)


暂无数据

推荐课程