当前位置: 首页 > news >正文

MySQL - group by分组查询 (查询操作 三)

功能介绍

group by: 对数据进行分组和聚合操作(可以操作单字段和多字段)

having:过滤group by的结果,也就是在分组后添加筛选条件

基础语法

select  字段列表  from  表名  [ where 条件 ]   group by  分组字段名  [ having ];

where 和 having的区别

执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组
之后
对结果进行过滤。(执行顺序:where -> 聚合函数 ->having)
判断条件不同:where不能对聚合函数进行判断,而having可以。

实践操作

1. 查询每个性别(男、女)的用户数量:

SELECT gender, COUNT(*) as count
FROM User
GROUP BY gender;

2. 查询年龄大于20的男性用户数量:

SELECT gender, COUNT(*) as count
FROM User
WHERE age > 20 AND gender = 1
GROUP BY gender;

3. 查询每个性别的用户年龄总和,并按照总和降序排序

SELECT gender, SUM(age) as total_age
FROM User
GROUP BY gender
ORDER BY total_age DESC;

4. 查询每个性别的用户数量,并筛选出数量大于等于2的分组

SELECT gender, COUNT(*) as count
FROM User
GROUP BY gender
HAVING count >= 2;

5. 查询每个性别的用户数量,并按照数量降序排序,只返回前1个分组:

SELECT gender, COUNT(*) as count
FROM User
GROUP BY gender
ORDER BY count DESC
LIMIT 1;

6.多字段分组

SELECT gender, age, COUNT(*) as count
FROM User
GROUP BY gender, age;

上一篇:MySQL - SQL聚合函数(查询操作 二)

下一篇:MySQL - order by排序查询 (查询操作 四)

http://www.lryc.cn/news/176979.html

相关文章:

  • 96.qt qml-http之XMLHttpRequest介绍详解使用
  • 代码随想录算法训练营第五十天 | 123.买卖股票的最佳时机III 188. 买卖股票的最佳时机 IV
  • 详解window.print(),实现长列表打印分页
  • 使用Chatgpt编写的PHP数据库pdo操作类(增删改查)
  • 蓝桥杯2023年第十四届省赛真题-异或和之和--题解
  • Linux 常用命令学习笔记
  • 支撑电动汽车规模化,特来电智能化升级群充产品
  • 本次CTF·泰山杯网络安全的基础知识部分
  • 通信协议:Uart的Verilog实现(下)
  • 嵌入式MCU都有什么高级用法?
  • 热启动和冷启动是什么,区别
  • 每日一题 494目标和(0-1背包)(灵神笔记)
  • 软件测试工作步骤详情
  • java项目之列车票务信息管理系统(ssm源码+文档)
  • 【Pytorch笔记】3.数学运算
  • MeterSphere 监控方案
  • elementui-plus+ts+axios使用el-upload组件自定义上传
  • 【STM32单片机】u8g2智能风扇设计
  • Java中的IO流的缓冲流
  • 7、SpringBoot_高级配置
  • cocos2dx查看版本号的方法
  • 某高校的毕设
  • 利用uvicorn、Starlette和pipeline将一个训练好的大模型发布成一个web服务
  • 贝赛尔曲线 - Vue3实现加入购物车抛物线效果组件
  • AddressSanitizer failed to allocate 0xdfff0001000 (15392894357504) bytes解决方法
  • Fortinet 2023上半年全球威胁态势研究报告:勒索软件检测成下降趋势,针对性攻击持续升温
  • MySQL ——多表连接查询
  • 前沿技术 --> 待定
  • Linux定时python脚本(crontab版本)
  • 修改 Ubuntu .cache 和 pip cache 默认路径