mysql 分组之后如何统计记录条数, gourp by 之后的 count

mysql 分组之后如何统计记录条数, gourp by 之后的 count,第1张

需要准备的工具:电脑,sql数据库。

1、首先新建一个test表,有id,name,second三个字段,其中name字段有重复数据。

2、输入“select name,max(second) from test group by name”语句,点击运行。

3、可以看到已经查询出按name分组后取出的second最大的一条记录。

4、以输入“select name,max(second) from test group by name order by max(second) desc”语句,按分组后second最大值进行降序。

5、如果想查询mysql分组后最小的一条记录,输入“select name,min(second) from test group by name”语句,点击运行即可。

GROUP BY dept,name 的意思,就是先按dqpt分组,如果出现dept相同的,再按name分组,也就是说除非出现dept和name都相同的记录才会合为一组,否则的话是不会合在一起的,这样的话显示出的name就只有一个了。

你用现实生活中的例子来理解一下就很明白啦:比如说你们班上的同学如果按性别来分组,可以分为两组,如果按照姓名来分组,那就基本上有多少个同学就有多少组(除非有同名同姓的),那如果按性别和姓名同时分组呢,那分的组就是同学数的两倍了,即“男的张三”一组,“女的张三”一组,“男的李四”一组,“女的李四”一组……当然,这其中有一半的组是空的,剩下的也是每一组只有一个人啊!理解没有?

所以 Group by 后面的分组字段不是随便加的,多个字段的分组是需要排列组合的,分的组数会按几何级数增长!

补充说一句:本来按名字来分组就是个愚不可及的想法了!更何况还要加上其他分组条件,这样的话基本上就是一组只有一个了!

SELECT col1, SUM(CASE WHEN col2 = 'X' then 1 else 0 end),

SUM(CASE WHEN col2 = 'Y' then 1 else 0 end)

from 表1

group by col1

即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/6157316.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-16
下一篇 2023-03-16

发表评论

登录后才能评论

评论列表(0条)

保存