SQL 的where 和 having

having应该是SQL中很基本的知识点,但是我最近才在项目中使用到,嗯。。只是作为辅助查询用的,就是要找出数据表中重复的记录。
where 这个关键字的作用时机是在数据表筛选数据的时候,而having的作用时机是返回的筛选的结果集后,可以理解为二次筛选。having是跟group by一起使用的,因此having后面筛选的条件可以使用聚合函数,而where不能。
举个栗子:
1.找出每个国家每个地区人数超过1000000的国家/地区

SELECT COUNTRY,REGION 
FROM TB_CITY_INFO 
GROUP BY COUNTRY,REGION 
HAVING SUM(POPULATION)>1000000

2.找出数据表重复的记录

SELECT NAME,COUNTRY,CITY 
FROM TB_USER_INFO 
GROUP BY  NAME,COUNTRY,CITY 
HAVING COUNT(*)>1

猜你喜欢

转载自blog.csdn.net/qq_31729917/article/details/87180179