当前位置:网站首页>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一起使用的,两者没有捆绑关系
边栏推荐
- 一维数组动态和问题答记
- 优化是一种习惯●出发点是'站在靠近临界'的地方
- 多功能纳米酶Ag/PANI|柔性衬底纳米ZnO酶|铑片纳米酶|Ag-Rh合金纳米颗粒纳米酶|铱钌合金/氧化铱仿生纳米酶
- 【初学必备】3d游戏建模入门基础知识
- keepalived:故障检测自动修复脚本
- Optimizing Bloom Filter: Challenges, Solutions, and Comparisons论文总结
- 工业基础类—利用xBIM提取IFC几何数据
- WCF and TCP message communication practice, c # 】 【 realize group chat function
- spark学习笔记(九)——sparkSQL核心编程-DataFrame/DataSet/DF、DS、RDD三者之间的转换关系
- 今日份bug,点击win10任务栏视窗动态壁纸消失的bug,暂未发现解决方法。
猜你喜欢
转铁蛋白Tf功能化β-榄香烯-雷公藤红素/紫杉醇PLGA纳米粒/雷公藤甲素脂质体(化学试剂)
你不知道的浏览器页面渲染机制
Site Architecture Detection & Chrome Plugin for Information Gathering
电脑为什么会蓝屏的原因
Rider调试ASP.NET Core时报thread not gc-safe的解决方法
【无标题】基于Huffman和LZ77的GZIP压缩
测试/开发程序员值这么多钱么?“我“不会愿赌服输......
WCF and TCP message communication practice, c # 】 【 realize group chat function
多种深度模型实现手写字母MNIST的识别(CNN,RNN,DNN,逻辑回归,CRNN,LSTM/Bi-LSTM,GRU/Bi-GRU)
Colocate Join :ClickHouse的一种高性能分布式join查询模型
随机推荐
【CNN】刷SOTA的trick
转铁蛋白(TF)修饰紫杉醇(PTX)脂质体(TF-PTX-LP)|转铁蛋白(Tf)修饰姜黄素脂质体
Random函数用法
哈工大软件构造Lab3(2022)
铱钌合金/氧化铱仿生纳米酶|钯纳米酶|GMP-Pd纳米酶|金钯复合纳米酶|三元金属Pd-M-Ir纳米酶|中空金铂合金纳米笼核-多空二氧化硅壳纳米酶
idea汉化教程[通俗易懂]
皮质-皮质网络的多尺度交流
[Go WebSocket] 你的第一个Go WebSocket服务: echo server
【深度学习前沿应用】图像风格迁移
CAS:190598-55-1_Biotin sulfo-N-hydroxysuccinimide ester生物素化试
优化是一种习惯●出发点是'站在靠近临界'的地方
《分布式微服务电商》专题(一)-项目简介
优雅退出在Golang中的实现
opengrok搭建[通俗易懂]
史上最全GIS相关软件(CAD、FME、Arcgis、ArcgisPro)
QoS Quality of Service Eight Congestion Avoidance
工业基础类—利用xBIM提取IFC几何数据
补坑求逆序对
Optimization is a habit The starting point is to 'stand close to the critical'
[Teach you how to make a small game] Write a function with only a few lines of native JS to play sound effects, play BGM, and switch BGM