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 ...
随机推荐
- 50.纯 CSS 创作一个永动的牛顿摆
原文地址:https://segmentfault.com/a/1190000015270808#articleHeader0 感想: 动画效果 + ::before + 2D转换 HTML code ...
- 39.纯 CSS 创作一个表达怀念童年心情的条纹彩虹心特效
原文地址:https://segmentfault.com/a/1190000015126240 HTML code: <div class="heart"> < ...
- markdown的试用
因为markdown,我接触到latex,因为latex,我花了几个月去看相关的书籍 我看了以下相关的资料 1.<LaTeX入门> 刘海洋 2.英文 TeX - LaTeX Stack E ...
- C#并口热敏小票打印机打印位图包括芯片的写入
下面是打印所需要调用的代码: class LptControl { private string LptStr = "lpt1"; public LptControl(string ...
- [Python]查询mysql导出结果至Excel并发送邮件
环境:Linux +python2.7+mysql5.6 1.提前安装xlwt(excel写入操作模块),MySQLdb(mysql操作模块) 2.脚本如下: #!/usr/bin/python #c ...
- Dom对象和jQuery对象的相互转化
01.jQuery对象 1.jQuery对象就是通过对jQuery包装dom对象后产生的对象. 2.虽然jQuery对象是包装DOM对象后产生的,但是jQuery无法使用DOM对象的任何方法,同理DO ...
- VC 字符串转化和分割
原文:点击这里. 备忘:为了适用于Unicode环境,要养成使用_T()宏的习惯 1.格式化字符串 CString s;s.Format(_T("The num is %d."), ...
- ABAP-2-会计凭证批量数据导入本地ACCESS
ABAP-1-会计凭证批量数据导入本地ACCESS 上一版本出现问题: A.若TXT数据条目超过800万(大概1.3G),则将TXT导入ACCESS过程不成功,ACCESS数据表为空.(Access单 ...
- WDA-2-事件执行先后
WebDynpro 中事件执行顺序 一:WebDynpro 启动时的 hokeMethod 执行顺序 (这里观察一个 view)从上至下,依次进行 如果这个 view 上还有一个 button(能触发 ...
- 使用mysqlbinlog恢复指定表
从整库备份的sql文件中导出某个表的sql语句时,vim查找到表的第一条INSERT语句后,按上下换行键计数INSERT语句的条数,然后按n yy复制,退出vim后,再新建一个文件,按p粘贴刚才的n条 ...