MySQL COUNT 与 GROUP BY

group by 用来对结果进行分组,分组之后便于统计,所以总会有count跟着出现

例如下表:

按照ID分组,统计每个ID重复了几次

SELECT yww_test.id,COUNT(id) as n
FROM yww_test
GROUP BY yww_test.id

把重复的记录找出来可以像下面这样

SELECT id,COUNT(*) AS n
FROM yww_test
GROUP BY yww_test.id
HAVING COUNT(*)>1;

其中count(*)是统计每一组有多少行

注意:

count(*)将返回表格中所有存在的行的总数包括值为null的行,然而count(列名)将返回表格中除去null以外的所有行的总数(有默认值的列也会被计入).

distinct 列名,得到的结果将是除去值为null和重复数据后的结果

参考:http://www.111cn.net/database/mysql/53202.htm

更多group by请参考:http://blog.csdn.net/xxpyeippx/article/details/8059910

时间: 2024-10-10 17:37:24

MySQL COUNT 与 GROUP BY的相关文章

Oracle和MySQL分组查询GROUP BY

Oracle和MySQL分组查询GROUP BY 真题1.Oracle和MySQL中的分组(GROUP BY)有什么区别? 答案:Oracle对于GROUP BY是严格的,所有要SELECT出来的字段必须在GROUP BY后边出现,否则会报错:“ORA-00979: not a GROUP BY expression”.而MySQL则不同,如果SELECT出来的字段在GROUP BY后面没有出现,那么会随机取出一个值,而这样查询出来的数据不准确,语义也不明确.所以,作者建议在写SQL语句的时候,

MYSQL 按时间 GROUP BY

SELECT DATE_FORMAT( startDateTime, "%Y-%m-%d %H" ) AS date, COUNT(*) AS numFROM data_serviceGROUP BY date ORDER BY date; 按照每天每小时统计数量 End. MYSQL 按时间 GROUP BY

mysql ORDER BY,GROUP BY 和DISTINCT原理

前言 除了常规的Join语句之外,还有一类Query语句也是使用比较频繁的,那就是ORDERBY,GROUP BY以及DISTINCT这三类查询.考虑到这三类查询都涉及到数据的排序等操作,所以我将他们放在了一起,下面就针对这三类Query语句做基本的分析. ORDER BY 的实现与优化 在MySQL中,ORDERBY的实现有如下两种类型: 一种是通过有序索引而直接取得有序的数据,这样不用进行任何排序操作即可得到满足客户端要求的有序数据返回给客户端: 另外一种则需要通过MySQL的排序算法将存储

MySQL如何优化GROUP BY

执行GROUP BY子句的最一般的方法:先扫描整个表,然后创建一个新的临时表,表中每个组的所有行应为连续的,最后使用该临时表来找到组 并应用聚集函数(如果有聚集函数).在某些情况中,MySQL通过访问索引就可以得到结果,而不用创建临时表.此类查询的 EXPLAIN 输出显示 Extra 列的值为 Using index for group-by. 一.松散索引扫描 1.满足条件 查询针对一个表. GROUP BY 使用索引的最左前缀. 只可以使用MIN()和MAX()聚集函数,并且它们均指向相同

面试笔试常考的mysql 数据库操作group by

IT 面试中,数据库的相关问题基本上属于必考问题,而其中关于sql语句也是经常考察的一个重要知识点. 下面介绍下sql语句中一个比较重要的操作group by,他的重要行一方面体现在他的理解困难度,一方面体现应用中的长见性. 首先,给出一个studnet学生表: CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(30) DEFAULT NULL, `sex` tinyint(1) DEFAU

mysql 中的GROUP BY

mysql在进行group by操作时要想利用索引,必须满足group by的字段同时存入于同一个索引中,且该索引是一个有序索引(如hash索引就不能满足要求).不仅如此,是否能够利用索引来实现GROUP BY 还与使用的聚合函数有关系. 当mysql query optimizer 无法找到可以利用的合适索引时,就不得不先读取需要的数据,然后通过临时表来完成GROUP BY 操作.

[MySQL 5.6] MySQL 5.6 group commit 性能测试及内部实现流程

[MySQL 5.6] MySQL 5.6 group commit 性能测试及内部实现流程 http://mysqllover.com/?p=581 尽管Mariadb以及Facebook在long long time ago就fix掉了这个臭名昭著的问题,但官方直到 MySQL5.6 版本才Fix掉,本文主要关注三点: 1.MySQL 5.6的性能如何 2.在5.6中Group commit的三阶段实现流程 新参数 MySQL 5.6提供了两个参数来控制binlog group commit

ElasticSearch中"distinct","count"和"group by"的实现

最近在业务中需要使用ES来进行数据查询,在某些场景下需要对数据进行去重,以及去重后的统计.为了方便大家理解,特意从SQL角度,方便大家能够理解ES查询语句. 1 - distinct SELECT DISTINCT(user_id) FROM table WHERE user_id_type = 3; { "query": { "term": { "user_id_type": 3 } }, "collapse": { &qu

MySQL 基本应用 count() 与 group by