关于mysql中having后接分组函数的一个问题;

create table n(num int);
insert into n values(1),(2),(3),(4),(5);
select num from n having num>min(num);

为什么查询结果为空?

num 里面有 (1,2,3,4,5) sql 拿num=1 的值跟函数里min(num)进行比较,1>1?不成立所以是null。

你的意思是,表n只有一个字段num,数据分别为1,2,3,4,5.然后对num分组,分组后筛选num大于min(num)的数据?
你这个思路很危险啊,对num分组,min(num)依然等于num,然后你要筛选num小于min(num)的数据,肯定是不存在的呀。

img
如上图所示,分组后的结果,然后having的条件没有一个成立的

望采纳