100分提问:请各大高手仔细讲解下Group By语句的用途并举例

黑夜路人
博客专家认证
2005-07-18 03:55:53
请各位高手仔细讲下MySQL里的Group By语句的用途,并且用实例说明。

没办法,一直没用到它,今天读公司以前程序员的代码,发现了用的不少,特别发问。

谢谢先!
...全文
229 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wen8u8 2005-07-19
  • 打赏
  • 举报
回复
楼上几位说的都不赖。
jxflll 2005-07-19
  • 打赏
  • 举报
回复
还可以求和,

select mobilenum,sum(money) from table group by mobilenum
黑夜路人 2005-07-19
  • 打赏
  • 举报
回复
谢谢楼上各位!

这么说这个group by主要就是分组作用了,通过group by XXX ,对XXX字段的内容进行分组,同一值的是同一组。

那么除了计算 count()总数之外,还有什么比较强,而且实用的应用?
ice_berg16 2005-07-18
  • 打赏
  • 举报
回复
一般用于分组统计,
如电信公司,想查6月份沈阳地区的用户每个人发了多少条短信,可能的SQL语句如下

select sendNumber,count(*) as totalSend
from sms
where area='沈阳'
group by sendNumber

这里sendNumber为发送者的号码,根据发送者号码进行分组,这样发送者号码相同的记录将被做为一组,count(*)将会统计这个号码的记录总数,结果集可能是下面的样子
sendNumber totalSend
139123456789 10
139123456780 20
139123456781 56
139123456782 24
Fanxr 2005-07-18
  • 打赏
  • 举报
回复
group by 是进行分组统计用的。比如说,现在一个表里有两种产品(或者更多),当要查出每一种产品的数量时,就要用group by 产品名,这样就将产品数量分开计算了,要不就是所有的产品的总数了。

select count(productname) from [table] --这句是查所有的数量

select count(productname) from [table] group by productname,这样就可以列出每一种产品的数量

要注意的是凡是group by 的字段,在selec段都必须是聚合型的(求和等),否则就是一对多,会出错,建议楼主好好看下SQL 查询分析器的TSQL帮助,对于select 的用法里有很详细的讲解。MS的帮助没的说。
bflovesnow 2005-07-18
  • 打赏
  • 举报
回复
group by 就是对 by 后面的字段按顺序分组显示
什么叫分组?就是组合起来相同的作为一组。

在 MySQL 中的 group by 和其它如 oralce,SQL Server,Access 等用法有些不一样.

比如楼上的写法,在上述的数据库中就是非法的 SQL,必须是 select a from table group by a 才行,也就是只有 group by 后面的字段才能出现在 select 中。
zhutimy 2005-07-18
  • 打赏
  • 举报
回复
这么长的文章,哪一句话不懂啊?
GROUP BY 简单的说,就是有多个同的记录,只取一条出来,
如,表中有三记录:
a b
1 2
2 54
1 3

SELECT * FROM talbe BROUP BY a
得到的可能是
a b
1 2
2 54

黑夜路人 2005-07-18
  • 打赏
  • 举报
回复
刚看了篇文章:http://www.knowsky.com/2022.html
但是还是不是特别明白。

21,882

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧