日期:2014-05-18  浏览次数:20552 次

group by 数据分组问题
我有个一视图有t   有   P,A,B,C,D,E   六个字段,P是主键,我希望通过字段   A,B对结果集进行分组,但是同时连同P,C,D,都显示在结果集中比如

select   p,a,b,c,d   from   t
group   by   a,b

但执行出错,
各位大哥帮帮忙想想有什么办法可以得到预想的结果。

------解决方案--------------------
select p,a,b,c,d
from t tt
where exists(select 1 from t where tt.a=a and tt.b=b and tt.p> p)
------解决方案--------------------
select min(p),a,b,min(c),min(d) from t
group by a,b
------解决方案--------------------
LZ应该明白,查询出来的结果,是一个列表,每个格子都应该有东西的

你以A,B进行分组后,那其他的在这个组里面是要取最大值,还是最小值,还是求和?等等

如果你是想全部列出来

A B C D
C D
C D
A B C D
C D

那么就考虑把不显示的地方为 ' '或者null

------解决方案--------------------
lwl0606(寒泉) ( ) 信誉:100 Blog 加为好友 2007-06-14 11:07:22 得分: 0


select min(p),a,b,min(c),min(d) from t
group by a,b


-------------------------------
你的这种方法得到的不是一行纪录