首次使用MySQL和Oracle的group by就掉坑!
关注米兜Java并置顶,一起涨姿势~
关注米兜
Summer
2020
热点推荐
1 |
家长与小朋友入场仪式 |
2 |
主持人上台致欢迎词 |
3 |
一起参观东南植物园 |
4 |
到植物园作坊制作叶脉标本 |
首次使用MySQL和Oracle的group by就掉坑!
group by :
(1)oracle 中,众所周知,select (查询字段) from table1 group by column1 ,column2,,,,,,
其中查询字段只能是column1,column2,,,,,,和其他列的聚合函数,其中红色字体要完全一致,
(2)mysql中,当查询字段未出现在group by 后面的字段,竟然也可以执行。如下例:
SELECT
CODE,
NAME,
kindergartenCode,
gradeCode
FROM
t_class
WHERE
isDelete = 0
AND NAME = '大一班999989'
GROUP BY
kindergartenCode,
gradeCode
ORDER BY
id DESC
运行结果:
看到上面的结果,似乎对oracle的规定表示怀疑,可是经过仔细分析,运行sql:"select * from t_class where name='大一班999989' and kindergartenCode='1cd3b2a04fe1470fbc999989' and gradeCode='4'",结果如下:
可以发现,其实表中是有两行记录的,但是按照上面分组后只返回了一条记录,显然是不正确的,因此,无论是mysql ,还是oracle ,一定要注意,使用了group by 语句后,前面select 出的列,要么是分组的列,要么是其他列的聚合函数,这样结果集才准确。
END!
关注米兜Java
回复关键词:视频 | 代码 | 图书
请留下你指尖的温度
让太阳拥抱你