Mysql——分组查询
在进行分组统计时会用到分组查询,比如按部门统计人数、按工种统计工资情况等。分组查询一定会使用到分组函数,也一定会用到group by子句。
Tip
:
1️⃣在单表分组查询中,所有不是分组函数的查询字段都要出现在group by子句之后,出现的顺序不影响查询结果;
2️⃣where子句一定是紧跟着from子句的,from关键字后是操作的表对象,where子句中的判断条件要么是常量要么是操作的表对象的字段,且where子句中不支持使用别名,子查询同样如此;
3️⃣通常而言分组前的数据筛选放在where子句中,分组后的数据筛选放在having子句中,但如果分组后的数据筛选的条件是操作表的字段时(比如分组的条件)也可以放在where子句中(且此时效率更高),但是where子句中是不能使用分组函数的,原因是分组函数的结果并不是操作表的字段,因此我们可以这么去记忆:只要筛选条件是操作表中的字段就放在where子句中否则放在having子句中,示例:以前两个语句的结果完全相同,但是第一个语句的效率要高于第二个
select count(*),order_code
from lmt_flow_advance_check_apply
where order_code >= 'BJ20190104'
group by order_code;select count(*),order_code
from lmt_flow_advance_check_apply
group by order_code
having order_code >= 'BJ20190104';
4️⃣order by子句放在最后;
5️⃣order by子句、group by子句和having子句都支持别名;
6️⃣SQL也支持按表达式或函数分组,且支持别名
#使用函数分组
SELECT COUNT(*),LENGTH(last_name)
FROM employees
GROUP BY LENGTH(last_name);#使用函数分组且使用别名
SELECT COUNT(*) c,LENGTH(last_name) name_len
FROM employees
GROUP BY name_len
HAVING c > 5;
Mysql——分组查询相关推荐
- mysql分组查询和分组过滤
mysql分组查询使用的的关键字是group by,分组过滤使用到的关键字是having.需要先分组查询才能进行分组过滤,个人理解having和where的区别有以下: 1.聚集函数count.sum ...
- mysql 分组查询最新
mysql分组查询最新 看到网上说到的方法和我写的都一样,也不知道有没有更好的方法,等到解答. SELECT id,group_id from (SELECT id,group_id from tab ...
- Mysql分组查询每组最新的一条数据(三种实现方法)
MySQL分组查询每组最新的一条数据 前言 注意事项 准备SQL 错误查询 错误原因 方法一 方法二(适用于自增ID和创建时间排序一致) 方法三(适用于自增ID和创建时间排序一致) 总结 MAX()函 ...
- MySQL分组查询,获取分组后数据
MySQL分组查询,获取分组后数据 MySQL分组查询,将其它列的数据,合并到一行展示,可以设置去重,设置去重,设置排序,截取指定条数 创建表结构 CREATE TABLE `author_info` ...
- MySQL分组查询跟聚合函数
MySQL分组查询跟聚合函数 一.分组查询的语句 GROUP BY { <列名> | <表达式> | <位置> } [ASC | DESC] 这个语句中间{ < ...
- mysql分组查询只获取第一条
mysql分组查询只获取第一条 接到一个需求: 需要获取协议表里所有供应商对应最新的采购员. 由于协议表里供应商的协议会有多个,可能采购员也不是同一个,所以需要做到聚合.筛选才能达到效果. -- 外层 ...
- mysql 分组查询例子_分组查询GROUP BY用法例子详解
GROUP BY在mysql中是分组查询了,那么你对于GROUP BY有了解多少呢,下面我们来看一篇关于GROUP BY使用例子,具体的细节如下所示. 在SQL中使用GROUP BY来对SELECT的 ...
- mysql分组查询 having,MYSQL-分组查询-where和having的区别
-- DQL查询操作 -- 查询全部字段 select * from 表名; -- 按照条件查询全部字段 select * from 表名 where 筛选条件 -- 查询指定字段的数据 select ...
- java中mysql分组查询_ES对应mysql的group by分组查询javaApi,多对多关系的分组查询...
ES对应mysql的group by分组查询javaApi,多对多关系的分组查询 比如我这边有个下列订单索引数据,现在的需求是按用户(fmerchantId)和支付方式(fchannelId)进行分组 ...
- MySQL分组查询最新的一条记录
问题描述 使用关键字 group by,和order by,但是直接在查询语句后跟上group和order会失效 举例说明:table表中的每个code最新的一条数据 失效写法: SELECT t.` ...
最新文章
- Linux2.6 --系统调用处理程序
- 剑指Offer:合并两个排序的链表【25】
- mysql存储文件用什么类型_块存储、文件存储、对象存储的区别是什么?
- java 阻塞 socket_java socket非阻塞I/O
- leetcode —— 1004. 最大连续1的个数 III
- IDLE打开Python报错 api-ms-win-crt-runtimel1-1-0.dll缺失的解决方案
- 如何在Docker上构建Node.js应用程序
- UVa 10950 - Bad Code
- NumPy学习笔记之random.randn()函数
- PASCAL-VOC2012数据集介绍
- 电脑天才郭盛华,如今怎样了?
- android 图片虚化代码,Android图片虚化源码
- 【贪玩巴斯】带你一起攻克英语语法长难句—— 第三章——名词(短语)和名词性从句{主语、宾语、表语和同位语}全解 ——2022年2月6日-16日
- error: You have not concluded your merge (MERGE_HEAD exists).
- 关于在百度上做SEO的几个技巧,你可能还不知道
- [附源码]Python计算机毕业设计动物保护资讯推荐网站
- 记kali系统中下载百度网盘中文件的方法(一) BND
- 万向节锁(Gimbal Lock)的理解
- 计算机桌面亮度,如何调暗计算机屏幕的亮度
- Maven Eclipse (m2e) SCM connector for subclipse 1.10 (svn 1.8)无法安装
热门文章
- 记录使用element-ui中el-upload的坑
- 透明这种颜色的html,透明颜色HTML5帆布
- 改名最成功的5所大学:改名如改命
- Resnet18卷积神经网络实现图片分类算法(代码全注释)
- java中是什么意思_java中什么意思?
- android 系统 优化设置,优化设置 让你的Android手机快人一步
- Android性能优化(一):APP启动优化
- 华为自带邮箱下载_华为用户进来看!微信主题气泡教程!怎么在微信里面设置气泡主题?...
- 如何搭建一个自己图床网站
- 电商系统,商品属性表和功能设计,可用于各种实体的属性