51Testing软件测试论坛

标题: GROUP BY 的理解 请高手赐教~~~~ [打印本页]

作者: m_r3326    时间: 2010-6-11 10:00
标题: GROUP BY 的理解 请高手赐教~~~~
GROUP BY 是分组查询, 一般 GROUP BY 是和 聚合函数配合使用


A  B
1  abc
1  bcd
1  asdfg

select A,B from table group by A
你说这样查出来是什么结果,

A  B
    abc
1  bcd
    asdfg

右边3条如何变成一条,所以需要用到聚合函数,比如

select A,count(B) 数量 from table group by A
这样的结果就是
A  数量
1   3

=====================

A  B
1  abc
1  bcd
1  asdfg
2  dfs
2  sdf

select A,count(B) 数量 from table group by A
这样的结果就是

A  数量
1   3
2   2

group by 有一个原则,就是 select 后面的所有列中,没有使用聚合函数的列,必须出现在 group by 后面
作者: m_r3326    时间: 2010-6-11 10:01
这样的思路是对的吧?
作者: zhangting85    时间: 2010-6-11 11:05
看不太懂~帮顶~楼主头像眼神很犀利啊~
作者: 苏高跃    时间: 2010-6-11 11:28
标题: 回复 1# 的帖子
你用数据SQL就得出结果 啦
作者: 苏高跃    时间: 2010-6-11 11:36
标题: 回复 1# 的帖子
select A,count(B)  from table group by A
这样应该是对的
作者: Jackc    时间: 2010-6-11 11:48
"group by 有一个原则,就是 select 后面的所有列中,没有使用聚合函数的列,必须出现在 group by 后面"

不对
作者: Jackc    时间: 2010-6-11 11:50
标题: 吃饭去了
LZ先看看这个,有问题下午再聊
http://www.w3school.com.cn/sql/sql_groupby.asp
作者: Jackc    时间: 2010-6-11 12:36
group by 虽然一个组合函数,但是对于它后面接的变量,并没有明确的限制。

LZ可以弄个3列的数组来试试就明白了。
作者: 苏高跃    时间: 2010-6-11 14:22
标题: 回复 6# 的帖子
不对?我用SQL运行过了,结果都出来了?还说不对,还是数据库的原因?
作者: Jackc    时间: 2010-6-11 14:32
标题: 回复 9# 的帖子
LZ写的代码没问题,"group by 有一个原则,就是 select 后面的所有列中,没有使用聚合函数的列,必须出现在 group by 后面"这句话不对
作者: kehan0535    时间: 2010-6-11 16:31
标题: 回复 7# 的帖子
这个网站我看过了,非常好!谢谢!
希望不理解的朋友好好看看哦!




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2