您的位置:首页 > 其它

测试order by 是在group by之前执行的还是之后执行的

2007-10-09 09:24 281 查看
问:
2id2yR,S{2HD(I31957select ...from ... group by ... order by ...
z7QL({ pDq:z@31957在这条语句里面 order by 是在group by之前执行的还是之后执行的?
|5s$C6uo31957PHPChina 开源社区门户 Vghlm&@
例如现在有这样的表test
6n(|/c9Clu'_r31957id name age
d FRX.R-e319571 aaa 20PHPChina 开源社区门户y2Y3?I@Z)}
2 bbb 25
3`1|4kq(Rz? oO9AU u319573 ccc 20
!Tcmf"vE&V)A&S_9v319574 ddd 25PHPChina 开源社区门户#S9h7c%l#aC!O
现在PHPChina 开源社区门户 E,dh_B y_K
select * from test group by agePHPChina 开源社区门户+i+^oa1D` _
出来的结果是PHPChina 开源社区门户 M3chB4exT2V
id name agePHPChina 开源社区门户b.o/L Y(U1T+}~5v
1 aaa 20
5[7qb#ZoR!T319572 bbb 25
+f5q,mU#^ N31957PHPChina 开源社区门户(W3t"u6Y�Mw3t
那么PHPChina 开源社区门户J,hm` A Q
select * from test group by age order by id descPHPChina 开源社区门户6mk1mWc[
是否会是PHPChina 开源社区门户�MU,yCQ8^w S$|
id name agePHPChina 开源社区门户 v#wa`z
4 ddd 25PHPChina 开源社区门户%[uYU g+EWF
3 ccc 20PHPChina 开源社区门户2n3{.{f jzH$H
还是PHPChina 开源社区门户bM~q/{~S|X
id name agePHPChina 开源社区门户cp t4r4n$n0z4X |w
2 bbb 25PHPChina 开源社区门户)om} N*@�W.ha2v
1 aaa 20 PHPChina 开源社区门户,p1v:A$KQ�Tq
PHPChina 开源社区门户(U DO%{!RMV
PHPChina 开源社区门户F#_!o {[ H
PHPChina 开源社区门户P u,r({8R`q'Jy
答案:PHPChina 开源社区门户9/*b,pDR ]'x,I6vW
id name age
0d"RmQ {$GK31957 2 bbb 25PHPChina 开源社区门户D|,h|(Q'])}[
1 aaa 20
*u0T}!A2^%I} d31957PHPChina 开源社区门户M:Os.O p(`
即order by 是在group by之后执行的
p.A(A$Qb$s-V1}HQ'~31957
N:L2B!h[ T31957这里有人可能有这样的需求,把刚才的那个表按年龄分组后,取出每组中id最大的那个人。
;|#w6A|m@K31957
4U8to8ft31957那么这个时候怎么处理呢?
J,Xf2[�[d#K6A x31957答案:
p&Qw e4`1R r2a31957select max(id), age from test group by agePHPChina 开源社区门户]x}^9Y+p
id age
{2M)Go#IVbM _0HM319573 20PHPChina 开源社区门户 y8z.at m3Xh'R
4 25
z;O)wcd5o#n/u'W}31957PHPChina 开源社区门户gGCd3Z'{

M }Pl4j2^J31957注意,不要想当然的认为可以使用PHPChina 开源社区门户.g1p9rO0x$oN
select max(id), name, age from test group by agePHPChina 开源社区门户!nr!Id3wp,L7m
因为max(id), age 与name 将会不对应PHPChina 开源社区门户,q1B#Dv0h] y|,zf
比如刚才的这个语句会出现以下的结果
VY)S%N.s1N4r31957 id name age
-X8P1X*mJ%_319573 aaa 20PHPChina 开源社区门户tTsF-U)]}+n
4 bbb 25PHPChina 开源社区门户%R#M)rWw:xo R:^R
我们注意到id->3 与name->aaa 根本不是同一条数据
"ej8x0y/s-gt6/m31957PHPChina 开源社区门户x*@(`y[ d K'p9a
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: