锁定老帖子 主题:一个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中的列顺序是不是一样的? |
|
返回顶楼 | |
发表时间:2010-06-08
拿BCompare来对比了一下 , 觉得lz是眼花了
|
|
返回顶楼 | |
发表时间: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中的列顺序不同,现在黑体表示,但是内容没有任何修改(有其他人的引用回帖为证),该公司提供的正确结果我是不知道的。 你最初明明是写得一样的 现在改了还非要说自己没贴错 这有什么不能承认的 当别人是傻子吗 |
|
返回顶楼 | |
发表时间: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中的列顺序不同,现在黑体表示,但是内容没有任何修改(有其他人的引用回帖为证),该公司提供的正确结果我是不知道的。 你最初明明是写得一样的 现在改了还非要说自己没贴错 这有什么不能承认的 当别人是傻子吗 此人人品绝对有问题,而且在现实工作中绝对属于超难沟通的 |
|
返回顶楼 | |
发表时间: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 证据在此! |
|
返回顶楼 | |
发表时间:2010-06-10
这个用来考什么的啊??
|
|
返回顶楼 | |
发表时间:2010-06-10
LZ 很悲剧,好好的一个问题。。。
|
|
返回顶楼 | |
发表时间:2010-06-10
呵呵,应该是后面那个多做了一次排序吧,group by触发了一次按b,a的排序,而order by a,b则又需要排序一次(没有实际测试,身边有oracle的同学可以创建个表explain一下)。
PS:楼主虽然有笔误,不过意思还是能明白的。 |
|
返回顶楼 | |
发表时间:2010-06-12
beyondmind 写道 呵呵,应该是后面那个多做了一次排序吧,group by触发了一次按b,a的排序,而order by a,b则又需要排序一次(没有实际测试,身边有oracle的同学可以创建个表explain一下)。
PS:楼主虽然有笔误,不过意思还是能明白的。 呵呵,的确是笔误。非常抱歉!! 再次说明:我不知道正确结果! |
|
返回顶楼 | |
发表时间: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语句写成完全一样了,由于习惯性思维的影响,一直没有看出来。 这个“同时加到我的博客”这个选项是不是有问题? |
|
返回顶楼 | |