论坛首页 招聘求职论坛

一个SQL题目

浏览 16946 次
锁定老帖子 主题:一个SQL题目
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (11)
作者 正文
   发表时间:2010-06-07  
FrankGui 写道
表t有四个字段a/b/c/d,问下面两个SQL语句结果有什么不同:

select a, b, sum(c)    
from t    
where d='t'    
[color=red]group by a, b [/color]   
order by a,b  


select a, b, sum(c) 
from t 
where d='t' 
[color=red]group by a, b [/color]
order by a,b


区别就是Group By中的列顺序不同
做了N年SQL了,还从来没有留意这个问题,我直接回答:结果没区别,但是对性能可能有影响

2010.06.07:看到回帖,发现很多人说SQL语句完全一样,部分出言不逊,觉得这些人才真是太不认真,这样如何做程序?我已经清楚说明是GroupBy中的列顺序不同,现在黑体表示,但是内容没有任何修改(有其他人的引用回帖为证),该公司提供的正确结果我是不知道的。



你瞪大你的眼睛再看看,你的
Group By中的列顺序是不是一样的?
0 请登录后投票
   发表时间:2010-06-08  
拿BCompare来对比了一下 , 觉得lz是眼花了
0 请登录后投票
   发表时间:2010-06-09  
FrankGui 写道
表t有四个字段a/b/c/d,问下面两个SQL语句结果有什么不同:

select a, b, sum(c)    
from t    
where d='t'    
group by a, b    
order by a,b  


select a, b, sum(c) 
from t 
where d='t' 
group by  b ,a
order by a,b


区别就是Group By中的列顺序不同
做了N年SQL了,还从来没有留意这个问题,我直接回答:结果没区别,但是对性能可能有影响

2010.06.07:看到回帖,发现很多人说SQL语句完全一样,部分出言不逊,觉得这些人才真是太不认真,这样如何做程序?我已经清楚说明是GroupBy中的列顺序不同,现在黑体表示,但是内容没有任何修改(有其他人的引用回帖为证),该公司提供的正确结果我是不知道的。


你最初明明是写得一样的
现在改了还非要说自己没贴错 这有什么不能承认的 当别人是傻子吗

0 请登录后投票
   发表时间:2010-06-10  
silasoni 写道
FrankGui 写道
表t有四个字段a/b/c/d,问下面两个SQL语句结果有什么不同:

select a, b, sum(c)    
from t    
where d='t'    
group by a, b    
order by a,b  


select a, b, sum(c) 
from t 
where d='t' 
group by  b ,a
order by a,b


区别就是Group By中的列顺序不同
做了N年SQL了,还从来没有留意这个问题,我直接回答:结果没区别,但是对性能可能有影响

2010.06.07:看到回帖,发现很多人说SQL语句完全一样,部分出言不逊,觉得这些人才真是太不认真,这样如何做程序?我已经清楚说明是GroupBy中的列顺序不同,现在黑体表示,但是内容没有任何修改(有其他人的引用回帖为证),该公司提供的正确结果我是不知道的。


你最初明明是写得一样的
现在改了还非要说自己没贴错 这有什么不能承认的 当别人是傻子吗



此人人品绝对有问题,而且在现实工作中绝对属于超难沟通的
0 请登录后投票
   发表时间:2010-06-10  
pindai 写道
zhiyuanmiao 写道
MySpace 写道
FrankGui 写道
表t有四个字段a/b/c/d,问下面两个SQL语句结果有什么不同:

select a, b, sum(c)    
from t    
where d='t'    
group by a, b    
order by a,b  


select a, b, sum(c) 
from t 
where d='t' 
group by a, b 
order by a,b


区别就是Group By中的列顺序不同。
做了N年SQL了,还从来没有留意这个问题,我直接回答:结果没区别,但是对性能可能有影响



本人眼拙  但要 留下证据

+2


证据在此!
0 请登录后投票
   发表时间:2010-06-10  
这个用来考什么的啊??
0 请登录后投票
   发表时间:2010-06-10  
LZ 很悲剧,好好的一个问题。。。
0 请登录后投票
   发表时间:2010-06-10  
呵呵,应该是后面那个多做了一次排序吧,group by触发了一次按b,a的排序,而order by a,b则又需要排序一次(没有实际测试,身边有oracle的同学可以创建个表explain一下)。

PS:楼主虽然有笔误,不过意思还是能明白的。
0 请登录后投票
   发表时间:2010-06-12  
beyondmind 写道
呵呵,应该是后面那个多做了一次排序吧,group by触发了一次按b,a的排序,而order by a,b则又需要排序一次(没有实际测试,身边有oracle的同学可以创建个表explain一下)。

PS:楼主虽然有笔误,不过意思还是能明白的。


呵呵,的确是笔误。非常抱歉!!

再次说明:我不知道正确结果!

0 请登录后投票
   发表时间:2010-06-18   最后修改:2010-06-18
FrankGui 写道
beyondmind 写道
呵呵,应该是后面那个多做了一次排序吧,group by触发了一次按b,a的排序,而order by a,b则又需要排序一次(没有实际测试,身边有oracle的同学可以创建个表explain一下)。

PS:楼主虽然有笔误,不过意思还是能明白的。


呵呵,的确是笔误。非常抱歉!!

再次说明:我不知道正确结果!



这个今天正式查到了原因,因为原来发表这个话题的时候,选择了“同时加到我的博客”这个选项,结果很长都没有别人的访问迹象,后来才发现这个话题只显示在自己的博客中,但是没有显示到论坛中,原始博客地址http://frankgui.iteye.com/admin/blogs/681143。所以就重新发了一个新贴,但是新贴中将两个SQL语句写成完全一样了,由于习惯性思维的影响,一直没有看出来。

这个“同时加到我的博客”这个选项是不是有问题?

0 请登录后投票
论坛首页 招聘求职版

跳转论坛:
Global site tag (gtag.js) - Google Analytics