mysql中count(),group by使用

count()统计表中或数组中记录

count(*)返回检索行的数目,且不论其值中是否包含NULL

count(column_name)返回的是对列中column_name不为NULL的行的统计

例如,查询某活动的某个菜谱的用户评论数:

SELECT COUNT(id) FROM uchome_comment WHERE id=530787 AND idtype=‘paiid‘

现在想要查询每个用户评论的次数,并且按照评论次数倒序显示:

SELECT COUNT(authorid) AS c, authorid,author FROM uchome_comment WHERE id=530787 AND idtype=‘paiid‘ GROUP BY authorid ORDER BY c DESC

当然也可以查询评论次数大于5的:

#在group by 后面使用having子句可以限定分组的条件SELECT COUNT(authorid) AS c, authorid,author FROM uchome_comment WHERE id=530787 AND idtype=‘paiid‘ GROUP BY authorid HAVING c > 5 ORDER BY c DESC

17:20:54持续更新

时间: 2024-10-02 21:49:46

mysql中count(),group by使用的相关文章

mysql中count,GROUP BY的用法(转载)

计算你拥有动物的总数目与“在pet表中有多少行?”是同样的问题,因为每个宠物有一个记录.COUNT(*)函数计算行数,所以计算动物数目的查询应为: mysql> SELECT COUNT(*) FROM pet;+----------+| COUNT(*) |+----------+|        9 |+----------+在前面,你检索了拥有宠物的人的名字.如果你想要知道每个主人有多少宠物,你可以使用COUNT( )函数: mysql> SELECT owner, COUNT(*) F

Mysql中count(*),DISTINCT的使用方法和效率研究

在处理一个大数据量数据库的时候突然发现mysql对于count(*)的不同处理会造成不同的结果 比如执行SELECT count(*) FROM tablename即使对于千万级别的数据mysql也能非常迅速的返回结果而对于SELECT count(*) FROM tablename WHERE.....mysql的查询时间开始攀升 仔细查阅累下手册,发现当没有WHERE语句对于整个mysql的表进行count运算的时候MyISAM类型的表中保存有总的行数,而当添加有WHERE限定语句的时候My

mysql 中的GROUP BY

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

【已解决】Mysql中使用group by出错

Mysql版本:8.0.15 win10,64位 在查询数据的时候发现执行以下代码会出错 1 select num, COUNT(course) 2 from student join score on(num = cnum) 3 GROUP BY num 提示错误: ERROR 1055 (42000): Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'test.

MySQL中Count函数的参数该传入什么样的值?

查询用户表中总记录 用户表中信息如下: 1.SELECT COUNT(*) FROM USER 结果为:3条 2.  SELECT COUNT(username) FROM USER 结果为:3条 3.  SELECT COUNT(sex) FROM USER 结果为:3条 4.  SELECT COUNT(birthday) FROM USER 结果为:0条 5.  SELECT COUNT(adress) FROM USER 结果为:2条 6.  SELECT COUNT(1) FROM U

MySQL中count使用总结

一.count情况 1.count(1):可以统计表中所有数据,不统计所有的列,用1代表代码行,在统计结果中包含列字段为null的数据: 2.count(字段):只包含列名的列,统计表中出现该字段的次数,并且不统计字段为null的情况: 3.count(*):统计所有的列,相当于行数,统计结果中会包含字段值为null的列: 二.count执行效率 列名为主键,count(列名)比count(1)快:列名不为主键,count(1)会比count(列名)快: 如果表中多个列并且没有主键,则count

Mysql中count(*)和limit同时使用的问题

1.带有count的sql语句只会返回一条记录 SELECT count(*) FROM `w_task` limit 0,500 结果如下图: 2.带有limit的sql语句是最后执行的 SELECT count(*) FROM `w_task` limit 1,500 以上sql语句将返回空行,因为count(*)只会使sql语句产生一条结果记录,所以后面的limit 1,500 是完全找不到的.

GROUP BY和HAVING 以及mysql中常用的日期函数

一.mysql中的GROUP BY和HAVINGGROUP BY常见的是和聚合函数(SUM,MIN,MAX,COUNT)搭配使用. 比如:SELECT category,SUM(money) AS `total` FROM user_money GROUP BY category;按类别分组统计user_money表每个类别总计有多少money 现在如果增加个条件,需要统计每个类别中支出的money总量,比如rule=1为支出,则改写语句为SELECT category,SUM(money) A

mysql ORDER BY,GROUP BY 和DISTINCT原理

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