当前位置:网站首页>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一起使用的,两者没有捆绑关系
边栏推荐
- WCF and TCP message communication practice, c # 】 【 realize group chat function
- LeetCode·283.移除零·双指针
- mysql 中大小写问题
- Tf铁蛋白颗粒包载顺铂/奥沙利铂/阿霉素/甲氨蝶呤MTX/紫杉醇PTX等药物
- QoS Quality of Service Six Router Congestion Management
- 【毕业设计】基于Stm32的智能疫情防控门禁系统 - 单片机 嵌入式 物联网
- TDD、FDD是什么意思?
- 【SemiDrive源码分析】【MailBox核间通信】51 - DCF_IPCC_Property实现原理分析 及 代码实战
- 子域名收集&Google搜索引擎语法
- LeetCode·27.移除元素·双指针
猜你喜欢
(十二) findContours函数的hierarchy详解
苹果字体查找
DefaultSelectStrategy NIOEventLoop执行策略
@Autowired注解 --required a single bean, but 2 were found出现的原因以及解决方法
子域名收集&Google搜索引擎语法
铁蛋白颗粒Tf包载多肽/凝集素/细胞色素C/超氧化物歧化酶/多柔比星(定制服务)
whois information collection & corporate filing information
云渲染的应用正在扩大,越来越多的行业需要可视化服务
越折腾越好用的 3 款开源 APP
【LeetCode】42、接雨水
随机推荐
Hangdian Multi-School Seven 1003-Counting Stickmen (Combination Mathematics)
Solution for thread not gc-safe when Rider debugs ASP.NET Core
803. 区间合并(贪心)左端点、右端点排序均可
uni-app 数据上拉加载更多功能
LeetCode·27.移除元素·双指针
【Knowledge Sharing】What is SEI in the field of audio and video development?
MATLAB设计,FPGA实现,联合ISE和Modelsim仿真的FIR滤波器设计
怎么完全卸载赛门铁克_Symantec卸载方法,赛门铁克卸载「建议收藏」
Biotin-PEG4-IC(TFP ester/amine/NHS Ester/azide)特性分享
史上最全GIS相关软件(CAD、FME、Arcgis、ArcgisPro)
[Natural Language Processing] [Vector Representation] PairSupCon: Pairwise Supervised Contrastive Learning for Sentence Representation
【深度学习前沿应用】图像风格迁移
When selecting a data destination when creating an offline synchronization node - an error is reported in the table, the database type is adb pg, what should I do?
多功能纳米酶Ag/PANI|柔性衬底纳米ZnO酶|铑片纳米酶|Ag-Rh合金纳米颗粒纳米酶|铱钌合金/氧化铱仿生纳米酶
opengrok搭建[通俗易懂]
服务器上行带宽和下行带宽指的是什么
(十二) findContours函数的hierarchy详解
Win11如何清除最近打开过的文件记录?
陕西CAS:1244028-50-9_Biotin-PEG3-SCO-PPh3 固体
转铁蛋白修饰长春新碱-粉防己碱脂质体|转铁蛋白修饰共载紫杉醇和金雀异黄素脂质体(试剂)