mysql分组GROUP BY常用sql
数据分组 GROUP BY
GROUP BY可以根据一个或多个字段进行分组。
比如,根据prod_id分组:
SELECT prod_id ,user_id
FROM products
GROUP BY prod_id
注意:
1.GROUP BY可以包含多个列。比如GROUP BY prod_id,user_id ;
2.GROUP BY如果分组列中具有NULL值,则NULL会作为一个分组返回。如果列中有多行NULL,它们将分为一组;
3.GROUP BY必须出现在WHERE子句之后,ORDER BY子句之前。
分组统计COUNT()
1.COUNT()函数:确定表中行的数目或符合条件的行的数目
注意:
COUNT(*)对表中行的数目进行计数,不管列中是否包含空值(NULL)或非空值。
使用COUNT(column)对特定列中具有值的行进行计数,忽略NULL值。
查询prod_id为10的商品数量:
SELECT COUNT(*) AS num
FROM products
WHERE prod_id=10;
2.根据分组,统计数量
根据prod_id分组,并查询统计各组的数量
SELECT prod_id ,COUNT(*) AS num
FROM products
GROUP BY prod_id
分组筛选 HAVING
1.筛选出订单数量大于2的用户id及其订单数量
SELECT user_id,COUNT(*) AS order_num
FROM orders
GROUP BY user_id
HAVING COUNT(*)>=2
2.筛选出订单数量大于2的用户id及其订单数量,并根据价格分组
SELECT prod_id,COUNT(*)
FROM product
WHERE price>10
GROUP BY prod_id
HAVING COUNT(*)>=2
ORDER BY price
3.WHERE和HAVING的区别是什么?
WHERE过滤行,而HAVING过滤分组。
查找重复数据
1.查找全部重复记录
Select 字段 From 表 Where 重复字段 In (Select 重复字段 From 表 Group By 重复字段 HAVING COUNT(*)>1)
从user表中,取出 user_name字段相同的记录:
SELECT id,user_name FROM user WHERE id in ( SELECT id FROM user GROUP BY id HAVING COUNT(*)>1)
2.过滤重复记录(只显示一条)
从user表中,取出 user_name字段相同的记录中,id最大的那一行数据。
SELECT id,user_name FROM user WHERE id in ( SELECT max(id) FROM user GROUP BY user_name )
参考资料:
《mysql必知必会》
https://blog.csdn.net/l1028386804/article/details/51733585
mysql分组GROUP BY常用sql的更多相关文章
- MySQL用户管理、常用sql语句、MySQL数据库备份恢复
1.MySQL用户管理 给远程登陆用户授权:grant all on *.* to 'user1'@'127.0.0.1' identified by '123456' (这里的127.0.0.1是指 ...
- Linux centosVMware mysql用户管理、常用sql语句、mysql数据库备份恢复
一.mysql用户管理 grant all on *.* to 'user1'@‘127.0.0.1’ identified by 'mimA123'; 创建user1用户 使用user1登录 /us ...
- 【MySQL】探究之常用SQL
一些SQL命令(不断更新,我总记不住,哭) List 建库建表 表的重命名(不区分大小写) 列的重命名 编码 修改结构 添加删除索引 大批量删除 binlog相关 select相关 数据库备份和恢复 ...
- 【呕心总结】python如何与mysql实现交互及常用sql语句
9 月初,我对 python 爬虫 燃起兴趣,但爬取到的数据多通道实时同步读写用文件并不方便,于是开始用起mysql.这篇笔记,我将整理近一个月的实战中最常用到的 mysql 语句,同时也将涉及到如何 ...
- ysql常用sql语句(12)- group by 分组查询
测试必备的Mysql常用sql语句,每天敲一篇,每次敲三遍,每月一循环,全都可记住!! https://www.cnblogs.com/poloyy/category/1683347.html 前言 ...
- Mysql常用sql语句(13)- having 过滤分组结果集
测试必备的Mysql常用sql语句,每天敲一篇,每次敲三遍,每月一循环,全都可记住!! https://www.cnblogs.com/poloyy/category/1683347.html 前言 ...
- MySQL常用SQL语句
一.数据库操作 1.创建数据库: Mysql> CREATE DATABASE databaseName; Mysql数据库的数据文件默认存放在/usr/local/mysql/var/目录下, ...
- MySQL常用SQL整理
MySQL常用SQL整理 一.DDL #创建数据库 CREATE DATABASE IF NOT EXISTS product DEFAULT CHARSET utf8 COLLATE utf8_ge ...
- mysql 常用 sql 语句 - 快速查询
Mysql 常用 sql 语句 - 快速查询 1.mysql 基础 1.1 mysql 交互 1.1.1 mysql 连接 mysql.exe -hPup ...
随机推荐
- 43.纯 CSS 绘制一个充满动感的 Vue logo
原文地址:https://segmentfault.com/a/1190000015177284 感想: 又有点回到boder的三角形 HTML code: <div class="v ...
- C# 设计模式-策略者模式(Strategy)
策略模式的用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换.策略模式使得算法可以在不影响到客户端的情况下发生变化. 策略模式是对算法的包装,是把使用算法的责任和 ...
- 自定义界面上绘制Text,可通过拖动控制文字大小及其位置
项目地址 最近项目上有个需求,需要在一块区域中显示文字,这块区域可以拖动,也可以通过拖拽右下角来改变大小,里面的文字大小要根据区域的大小进行自适应.刚开始觉得这个需求不难,只需要一个TextView就 ...
- django之block extend标签
class ExtendsNode(Node): must_be_first = True context_key = 'extends_context' def __init__(self, nod ...
- leetcode986
class Solution: def judgeIntersection(self,a:'Interval',b:'Interval'): #返回值1,bool类型,是否有交集:True-有交集,F ...
- ubuntu16.04搭建geodjango+postgresql+postgis的WebGIS框架(二))安装postgresql和postgis
卸载老版本sudo dpkg --purge postgis postgresql-9.3-postgis1.安装postgresql sudo apt-cache search postgresql ...
- C# 中奇妙的函数–String Split 和 Join
很多时候处理字符串数据,比如从文件中读取或者存入 - 我们可能需要加入分隔符(如CSV文件中的逗号),或使用一个分隔符来合并字符串序列. 很多人都知道使用split()的方法,但使用与其对应的Join ...
- css3 制作一个遮罩
思路:1.显示两块图片,2.图片区域(初始隐藏),3.鼠标移入,遮罩显示,此时遮住图片,4.鼠标移出,遮罩恢复初始状态 用到两个css3 属性:transtion ,transform 用法: 1. ...
- 尚硅谷springboot学习12-profile
一个项目对应不同的环境可以会有不同的配置,如开发,测试,生产环境使用不同的端口,这时可以设置profile变换不同的环境 通过spring.profiles.active切换环境 1.多Profile ...
- 使用ab对网站进行压力测试
1.安装yum install httpd-tools 2.ab -kc 1000 -n 1000 http://localhost/ab.html 这个指令会使用1000个并发,进行连接1000次