在日常开发过程中难免遇到分组去重的业务场景。

比如说在门店几分流水表中统计一下各个门店的流水记录数据,包括流水记录总数和流水记录明细。那么问题来了!

首先看表结构CREATE TABLE `shop_point` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`shop_id` int(11) NOT NULL DEFAULT '0',

`point` int(11) DEFAULT '0',

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

插入几条模拟数据

如果我们想查询1号门店的数据列表,那么很自然的会写出下面的sql语句SELECT * FROM `shop_point` WHERE shop_id = 1

那这个时候记录总数该如何算呢,因为会牵扯到分页逻辑。

所以,这就是今天想说的问题。

首先,简单粗暴的方法就是直接查询说所有的记录,然后用程序进行数组大小计算。不过在数据量较小的情况下还是可以临时用一下的。因为数组非常大的情况下,第一查询速度会特别慢,第二就算查出来以后代码进行计算有可能也会内存溢出。

不妨试一试下面的sql语句SELECT count(*) FROM (SELECT shop_id FROM shop_point GROUP BY shop_id) t

这样会直接返回记录的数值。

注意最后面的那个t不可以省略,需要定义一个别名,不一定叫t也可以是其他字符。

从上面的语句可以看出,使用group by后统计到的是分组后的结果集,然后再在外面套一层count就得到了最终想要的记录总数。

不过在和朋友讨论后发现还有一种写法也可以实现上面的需求,直接贴一下语句SELECT COUNT(DISTINCT shop_id) FROM shop_point

此写法简单明了,而且效率上还是比上一种高一点的。通过执行计划就可以看出。

mysql count group by_MySQL中使用count与group by 的统计问题相关推荐

  1. mysql多条件count_Mysql中使用count加条件统计

    Mysql中使用count加条件统计  0  753 坚持奋斗 2019/6/28 13:19:56 江苏 南京 新建一个Mysql数据表a,包含id和num两个字段 [pre] mysql> ...

  2. mysql的order by_mysql中的order by

    一.order by的原理 1.利用索引的有序性获取有序数据 当查询语句的 order BY 条件和查询的执行计划中所利用的 Index 的索引键(或前面几个索引键)完全一致,且索引访问方式为 ran ...

  3. c语言count函数的用法,java count函数用法

    java count函数用法 [2021-02-11 06:55:28]  简介: 在excel中count函数的功能是:计算数字的个数,对给定数据集合或者单元格区域中数据的个数进行计数.COUNT函 ...

  4. mysql count 返回0_如何在MySQL中使用COUNT時返回0而不是null

    我正在使用此查詢返回存儲在$ sTable中的歌曲列表以及存儲在$ sTable2中的總項目的COUNT.如何在MySQL中使用COUNT時返回0而不是null /* * SQL queries * ...

  5. Mysql中的count()与sum()区别

    Mysql中的count()与sum()区别 首先创建个表说明问题 CREATE TABLE `result` ( `name` varchar(20) default NULL, `subject` ...

  6. mysql聚合函数count用法_MySQL中聚合函数count的使用和性能优化技巧

    本文的环境是Windows 10,MySQL版本是5.7.12-log 一. 基本使用 count的基本作用是有两个: 统计某个列的数据的数量: 统计结果集的行数: 用来获取满足条件的数据的数量.但是 ...

  7. count 有条件 mysql_【笔记】Mysql中使用count加条件统计

    前言mysql 最近发如今处理Mysql问题时,count()函数频繁上镜,经常出如今分组统计的情景下,可是有时候并非使用group by分好组就能够直接统计了,好比说一个常见的需求,统计每一个班级男 ...

  8. sqlserver建表语句_重新认识MySQL中的COUNT语句

    在数据库的增删改查操作中,使用最频繁的就是查询操作. 而在所有查询操作中,统计数量操作更是经常被用到. 关于数据库中行数统计,无论是MySQL还是Oracle亦或者是SqlServer,都有一个函数可 ...

  9. Mysql中使用count加条件统计

    文章目录 前言 测试环境 准备工作 条件统计 总结 前言 最近发现在处理Mysql问题时,count()函数频繁上镜,常常出现在分组统计的情景下,但是有时候并不是使用group by分好组就可以直接统 ...

  10. mysql的count函数类型是什么意思_MySQL中的COUNT函数,你理解多少

    前言:COUNT函数相比大家都不陌生,接触过数据库的兄弟们想必都用过,但是,就是这个常用的COUNT函数,却暗含许多玄机. 1.COUNT简介 看看官网对COUNT的简介 大致意思是:COUNT(ex ...

最新文章

  1. R语言scan函数读取文件为向量或者列表格式实战
  2. Spring Data JPA 从入门到精通~自定义实现Repository
  3. Spring,SpringMvc初始化监听配置
  4. jquery插件dataTables(dataTables在显示表格的时候,果然是个好东西,支持排序/搜索/分页/...)
  5. LPV(Light Propagation Volumes)
  6. 取二维数组最大值_学习Java,你必需要知道这些——Java数组
  7. epoll编程实例客户端_网络编程:epoll
  8. Delphi2007卸载
  9. java p12证书_java引用微信支付的p12证书文件
  10. Mac电脑使用Charles抓取Android手机app的包
  11. SQL语句(增删改查)
  12. 浮点类型的比较,精度控制(float.h的利用 ,DBL_EPSILON)
  13. intersect的用法
  14. 华为云部署K8s之K8s安装4
  15. 千锋逆战班学习第二十五天
  16. 关于adb shell screencap 1.png
  17. VisualStudio App.Config自动配置
  18. 如何在chrome设置主页
  19. PHP数组函数-----array_values
  20. 【牛客网】清华大学 查找学生信息 解题报告

热门文章

  1. 阿里巴巴CTO程立:CTO就是要给CEO扫清障碍和风险
  2. 阿里13篇论文入选数据库顶会!PolarDB技术被认为引领数据库发展方向
  3. 特稿:OceanBase 连破纪录的背后,是技术人的砥砺前行 | 凌云时刻
  4. 新兴IT企业特斯拉(四)——Model 3
  5. 【优化预测】基于matlab粒子群算法优化SVM预测【含Matlab源码 1424期】
  6. 【数学建模】基于matlab GUI排队系统仿真【含Matlab源码 1253期】
  7. 【幅度调制】基于matlab GUI语音幅度调制【含Matlab源码 292期】
  8. 循环神经网络 递归神经网络_递归神经网络-第3部分
  9. Numpy详细函数属性
  10. tortoisesvn统计_TortoiseSVN使用教程——史上最全最易懂教程