当前位置:网站首页>Interview shock 62: what are the precautions for group by?
Interview shock 62: what are the precautions for group by?
2022-07-05 14:37:00 【Wang Lei】
Be careful : The following content of this article is based on MySQL 5.7 InnoDB Database engine .
1.group by Can't add after where
stay MySQL in , be-all SQL The query syntax should follow the following syntax order :
select from where group by having order by limit
The above grammatical order is not interchangeable , Otherwise, the report will be wrong . For example, we can't group by Then add where Query statement , Otherwise, the following error will occur : The execution of the syntax sequence is and MySQL Of select Statement execution order related ,select The order of execution is as follows :
from Stage where Stage group Stage having Stage select Stage order by Stage limit Stage
Be careful : among select A special , When writing query statements , Write it first , Other grammatical order shall be consistent with the execution order .
2.having or group by Can be used alone
having and group by Can be used alone , The following query is shown :
3.having and group by You can use aliases
When having When used alone , Its role and where similar , But there are subtle differences . For example where Alias cannot be used in , but having and group by But it can be another name . Let's create a test table to demonstrate , Build table SQL as follows :
drop table if exists student_score;
create table student_score(
id int primary key auto_increment comment ' Primary key ',
name varchar(250) comment ' full name ',
math decimal(4,1) comment ' Math scores ',
chinese decimal(4,1) comment ' Chinese achievement '
);
insert into student_score(name,math,chinese) values(' Zhang San ',50,50),(' Li Si ',80,80),(' Wang Wu ',90,90);
The data in the table is shown in the figure below : When we use the total score alias total Respectively in where and having When used in , The query results are as follows : As can be seen from the above results ,having Queries can use select Alias in , and where Cannot use alias . except having You can use something other than an alias ,group by You can also use aliases , As shown in the figure below :
Why? where You can't use aliases ? by having But you can ?
where Alias cannot be used in , This sum MySQL Statement execution order ,MySQL The execution order of the statements is as follows :
from Stage where Stage group Stage having Stage select Stage order by Stage limit Stage
in other words , In execution where When inquiring ,select Not yet implemented , So in where You want to use a that has not yet been executed select Aliases in are not acceptable . From the above execution sequence, you can see ,having Execution is also select Before , Why can it be used select The alias in ?
This is because MySQL stay 5.7.5 After that, it was extended , Allow in having Use aliases , There are corresponding instructions in the official documents , As shown in the figure below : MySQL Official document address :https://dev.mysql.com/doc/refman/5.7/en/group-by-handling.html
PS:group by Be able to use the principle and having similar .
summary
SQL Statements must be written in this order :select、from、where、group by、having、order by、limit. among having or group by Can be used alone , And in MySQL 5.7.5 after ,group by and having You can use alias queries , but where Cannot use alias .
It's up to you to judge right and wrong , Disdain is to listen to people , Gain or loss is more important than number .
official account :Java Analysis of the real interview questions
Interview collection :https://gitee.com/mydb/interview
边栏推荐
- 用 Go 跑的更快:使用 Golang 为机器学习服务
- 区间 - 左闭右开
- IPv6与IPv4的区别 网信办等三部推进IPv6规模部署
- Microframe technology won the "cloud tripod Award" at the global Cloud Computing Conference!
- 【招聘岗位】软件工程师(全栈)- 公共安全方向
- 手写promise与async await
- 循环不变式
- 03_ Dataimport of Solr
- 黑马程序员-软件测试-10阶段2-linux和数据库-44-57为什么学习数据库,数据库分类关系型数据库的说明Navicat操作数据的说明,Navicat操作数据库连接说明,Navicat的基本使用,
- [detailed explanation of Huawei machine test] happy weekend
猜你喜欢
CYCA少儿形体礼仪 宁波市培训成果考核圆满落幕
面试突击62:group by 有哪些注意事项?
Photoshop插件-动作相关概念-ActionList-ActionDescriptor-ActionList-动作执行加载调用删除-PS插件开发
Thymeleaf 使用后台自定义工具类处理文本
实现一个博客系统----使用模板引擎技术
无密码身份验证如何保障用户隐私安全?
安装配置Jenkins
浅谈Dataset和Dataloader在加载数据时如何调用到__getitem__()函数
Share 20 strange JS expressions and see how many correct answers you can get
Principle and performance analysis of lepton lossless compression
随机推荐
TS所有dom元素的类型声明
做自媒體視頻二次剪輯,怎樣剪輯不算侵權
R language ggplot2 visualization: use ggplot2 to visualize the scatter diagram, and use the labs parameter to customize the X axis label text (customize X axis labels)
Online electronic component purchasing Mall: break the problem of information asymmetry in the purchasing process, and enable enterprises to effectively coordinate management
[learning notes] stage test 1
【招聘岗位】基础设施软件开发人员
Matrix chain multiplication dynamic programming example
做自媒体视频二次剪辑,怎样剪辑不算侵权
CPU设计实战-第四章实践任务二用阻塞技术解决相关引发的冲突
Webrtc learning (II)
Thymeleaf 常用函数
How does redis implement multiple zones?
LeetCode_ 2 (add two numbers)
R language uses boxplot function in native package (basic import package, graphics) to visualize box plot
LeetCode_ 3 (longest substring without repeated characters)
【学习笔记】阶段测试1
R language dplyr package select function, group_ By function, mutate function and cumsum function calculate the cumulative value of the specified numerical variable in the dataframe grouping data and
mysql8.0JSON_ Instructions for using contains
CPU设计实战-第四章实践任务三用前递技术解决相关引发的冲突
安装配置Jenkins