在进行分组统计时会用到分组查询,比如按部门统计人数、按工种统计工资情况等。分组查询一定会使用到分组函数,也一定会用到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——分组查询相关推荐

  1. mysql分组查询和分组过滤

    mysql分组查询使用的的关键字是group by,分组过滤使用到的关键字是having.需要先分组查询才能进行分组过滤,个人理解having和where的区别有以下: 1.聚集函数count.sum ...

  2. mysql 分组查询最新

    mysql分组查询最新 看到网上说到的方法和我写的都一样,也不知道有没有更好的方法,等到解答. SELECT id,group_id from (SELECT id,group_id from tab ...

  3. Mysql分组查询每组最新的一条数据(三种实现方法)

    MySQL分组查询每组最新的一条数据 前言 注意事项 准备SQL 错误查询 错误原因 方法一 方法二(适用于自增ID和创建时间排序一致) 方法三(适用于自增ID和创建时间排序一致) 总结 MAX()函 ...

  4. MySQL分组查询,获取分组后数据

    MySQL分组查询,获取分组后数据 MySQL分组查询,将其它列的数据,合并到一行展示,可以设置去重,设置去重,设置排序,截取指定条数 创建表结构 CREATE TABLE `author_info` ...

  5. MySQL分组查询跟聚合函数

    MySQL分组查询跟聚合函数 一.分组查询的语句 GROUP BY { <列名> | <表达式> | <位置> } [ASC | DESC] 这个语句中间{ < ...

  6. mysql分组查询只获取第一条

    mysql分组查询只获取第一条 接到一个需求: 需要获取协议表里所有供应商对应最新的采购员. 由于协议表里供应商的协议会有多个,可能采购员也不是同一个,所以需要做到聚合.筛选才能达到效果. -- 外层 ...

  7. mysql 分组查询例子_分组查询GROUP BY用法例子详解

    GROUP BY在mysql中是分组查询了,那么你对于GROUP BY有了解多少呢,下面我们来看一篇关于GROUP BY使用例子,具体的细节如下所示. 在SQL中使用GROUP BY来对SELECT的 ...

  8. mysql分组查询 having,MYSQL-分组查询-where和having的区别

    -- DQL查询操作 -- 查询全部字段 select * from 表名; -- 按照条件查询全部字段 select * from 表名 where 筛选条件 -- 查询指定字段的数据 select ...

  9. java中mysql分组查询_ES对应mysql的group by分组查询javaApi,多对多关系的分组查询...

    ES对应mysql的group by分组查询javaApi,多对多关系的分组查询 比如我这边有个下列订单索引数据,现在的需求是按用户(fmerchantId)和支付方式(fchannelId)进行分组 ...

  10. MySQL分组查询最新的一条记录

    问题描述 使用关键字 group by,和order by,但是直接在查询语句后跟上group和order会失效 举例说明:table表中的每个code最新的一条数据 失效写法: SELECT t.` ...

最新文章

  1. Linux2.6 --系统调用处理程序
  2. 剑指Offer:合并两个排序的链表【25】
  3. mysql存储文件用什么类型_块存储、文件存储、对象存储的区别是什么?
  4. java 阻塞 socket_java socket非阻塞I/O
  5. leetcode —— 1004. 最大连续1的个数 III
  6. IDLE打开Python报错 api-ms-win-crt-runtimel1-1-0.dll缺失的解决方案
  7. 如何在Docker上构建Node.js应用程序
  8. UVa 10950 - Bad Code
  9. NumPy学习笔记之random.randn()函数
  10. PASCAL-VOC2012数据集介绍
  11. 电脑天才郭盛华,如今怎样了?
  12. android 图片虚化代码,Android图片虚化源码
  13. 【贪玩巴斯】带你一起攻克英语语法长难句—— 第三章——名词(短语)和名词性从句{主语、宾语、表语和同位语}全解 ——2022年2月6日-16日
  14. error: You have not concluded your merge (MERGE_HEAD exists).
  15. 关于在百度上做SEO的几个技巧,你可能还不知道
  16. [附源码]Python计算机毕业设计动物保护资讯推荐网站
  17. 记kali系统中下载百度网盘中文件的方法(一) BND
  18. 万向节锁(Gimbal Lock)的理解
  19. 计算机桌面亮度,如何调暗计算机屏幕的亮度
  20. Maven Eclipse (m2e) SCM connector for subclipse 1.10 (svn 1.8)无法安装

热门文章

  1. 记录使用element-ui中el-upload的坑
  2. 透明这种颜色的html,透明颜色HTML5帆布
  3. 改名最成功的5所大学:改名如改命
  4. Resnet18卷积神经网络实现图片分类算法(代码全注释)
  5. java中是什么意思_java中什么意思?
  6. android 系统 优化设置,优化设置 让你的Android手机快人一步
  7. Android性能优化(一):APP启动优化
  8. 华为自带邮箱下载_华为用户进来看!微信主题气泡教程!怎么在微信里面设置气泡主题?...
  9. 如何搭建一个自己图床网站
  10. 电商系统,商品属性表和功能设计,可用于各种实体的属性