当前位置:网站首页>mysql----group by、where以及聚合函数需要注意事项
mysql----group by、where以及聚合函数需要注意事项
2022-08-10 19:06:00 【幼儿园里的山大王】
一、group by产生的坑
一、假设有一张测试表test
执行sql语句:select name from test group by name;通过分组过滤掉重复的name,
然后展先的字段也是name,这个没有问题的。
二、注意坑
如果sql语句改为select * from test group by name;这个时候就有问题了。如果这个时候有一个中间表3,如下可以看到问题,也就是说,如果通过goup by进行分组过滤查询,查询字段又是全部,而分组字段却又只是一个,那么有重复数据的其他字段就会出现问题,由于mysql单元格里只能有一个数据,这个时候就会报错。
三、解决方法
对于group by 进行去重,select后面跟着的查询字段,要么就是group by里的字段(select name from test group by name ),要么就是使用聚合函数(select name sum(number) from test group by name),(select name,sum(id) from test group by name,number,此结果如下图)
二、where 注意事项
一、where 后面不能跟聚合函数
如果where后面跟了聚合函数,会出现Invalid use of group function的错误。如果想使用聚合函数进行过滤或统计之类的操作,要么是在select 后面进行,要么就在having后面进行。
二、where和having之间的区别
1、where是一个约束声明,在查询数据库的结果返回之前对数据库中的查询条件进行约束,即在结果返回之前起作用,且where后面不能使用“聚合函数”,因为where的执行顺序在聚合函数之前。
2、having是一个过滤声明,过滤是在查询数据库的结果返回之后进行过滤,即在结果返回之后起作用,且having后面可以使用“聚合函数”。注意:having是对查出来的结果进行过滤,那么对没有查出来的值就不能使用having。另外。having不是必须和group by一起使用的,两者没有捆绑关系
边栏推荐
猜你喜欢
[教你做小游戏] 斗地主的手牌,如何布局?看25万粉游戏区UP主怎么说
转铁蛋白修饰长春新碱-粉防己碱脂质体|转铁蛋白修饰共载紫杉醇和金雀异黄素脂质体(试剂)
spark学习笔记(九)——sparkSQL核心编程-DataFrame/DataSet/DF、DS、RDD三者之间的转换关系
力扣150-逆波兰表达式求值——栈实现
多种深度模型实现手写字母MNIST的识别(CNN,RNN,DNN,逻辑回归,CRNN,LSTM/Bi-LSTM,GRU/Bi-GRU)
FEMRL: A Framework for Large-Scale Privacy-Preserving Linkage of Patients’ Electronic Health Rec Paper Summary
QoS服务质量七交换机拥塞管理
烟雾、空气质量、温湿度…自己徒手做个环境检测设备
转铁蛋白(TF)修饰紫杉醇(PTX)脂质体(TF-PTX-LP)|转铁蛋白(Tf)修饰姜黄素脂质体
【C#】WCF和TCP消息通信练习,实现群聊功能
随机推荐
状态压缩dp蒙德里安的梦想
GBASE 8s 高可用RSS集群搭建
产品思维训练 | 新用户从注册到绑卡流失率很高是什么原因?
3D游戏建模学习路线
转铁蛋白(Tf)修饰去氢骆驼蓬碱磁纳米脂质体/香豆素-6脂质体/多柔比星脂质体
Keras deep learning combat (17) - image segmentation using U-Net architecture
Common ports and services
几行深度学习代码设计包含功能位点的候选免疫原、酶活性位点、蛋白结合蛋白、金属配位蛋白
What is the upstream bandwidth and downstream bandwidth of the server?
今日份bug,点击win10任务栏视窗动态壁纸消失的bug,暂未发现解决方法。
铱钌合金/氧化铱仿生纳米酶|钯纳米酶|GMP-Pd纳米酶|金钯复合纳米酶|三元金属Pd-M-Ir纳米酶|中空金铂合金纳米笼核-多空二氧化硅壳纳米酶
从 Delta 2.0 开始聊聊我们需要怎样的数据湖
你不知道的浏览器页面渲染机制
TikTok选品有什么技巧?
whois信息收集&企业备案信息
Introduction to 3 d games beginners essential 】 【 modeling knowledge
799. 最长连续不重复(双指针)
【无标题】基于Huffman和LZ77的GZIP压缩
QoS Quality of Service Seven Switch Congestion Management
flask生成路由的2种方式和反向生成url