数据库

小秃顶 2020-10-14 03:33:40
为什么第二种查询的时候总是显示空表,求各路大神指点
...全文
179 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
小秃顶 2020-10-16
  • 打赏
  • 举报
回复
引用 2 楼 geredGuo的回复:
mysql的垃圾写法害死人,一点都不规范 这么说吧,having只能用group by 之后的数据。 而mysql 不需要在select 写group by 列,其他非group by 列也不需要些聚合函数。这样居然不报错,到高版本sql_mode严格了就比较好了。 核心问题分析: 因为每个职工号都是唯一的,然后工资和 avg(工资)是同一个值,所以 having条件不成立; 测试如下: create table warehouse(`仓库号` varchar(100),`职工号` varchar(100),`工资` int); insert into warehouse values('WH2','E1',1220); insert into warehouse values('WH1','E3',1210); insert into warehouse values('WH2','E4',1250); insert into warehouse values('WH3','E6',1230); insert into warehouse values('WH1','E7',1250);
懂了,分析的很透彻,谢谢
晴天8 2020-10-15
  • 打赏
  • 举报
回复
mysql的垃圾写法害死人,一点都不规范 这么说吧,having只能用group by 之后的数据。 而mysql 不需要在select 写group by 列,其他非group by 列也不需要些聚合函数。这样居然不报错,到高版本sql_mode严格了就比较好了。 核心问题分析: 因为每个职工号都是唯一的,然后工资和 avg(工资)是同一个值,所以 having条件不成立; 测试如下: create table warehouse(`仓库号` varchar(100),`职工号` varchar(100),`工资` int); insert into warehouse values('WH2','E1',1220); insert into warehouse values('WH1','E3',1210); insert into warehouse values('WH2','E4',1250); insert into warehouse values('WH3','E6',1230); insert into warehouse values('WH1','E7',1250);
  • 打赏
  • 举报
回复
你都group by 了,后面算的平均工资还是工资,自然不会有大于的

22,301

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧