推荐于2016-10-21 16:43:02
最佳答案
先进行分组处理。
Group By 和 Having, Where ,Order by这些关键字是按照如下顺序进行执行的:Where, Group By, Having, Order by。
首先where将最原始记录中不满足条件的记录删除(所以应该在where语句中尽量的将不符合条件的记录筛选掉,这样可以减少分组的次数)
然后通过Group By关键字后面指定的分组条件将筛选得到的视图进行分组
接着系统根据Having关键字后面指定的筛选条件,将分组视图后不满足条件的记录筛选掉
最后按照Order By语句对视图进行排序,这样最终的结果就产生了。
在这四个关键字中,只有在Order By语句中才可以使用最终视图的列名,如:
SELECT FruitName, ProductPlace, Price, ID AS IDE, Discount
FROM T_TEST_FRUITINFO
WHERE (ProductPlace = N'china')
ORDER BY IDE
这里只有在ORDER BY语句中才可以使用IDE,其他条件语句中如果需要引用列名则只能使用ID,而不能使用IDE。
其他回答
肯定是group by先
order by优先级最低,在最后
group by 语句执行后记录会按关键字自动升序?
不一定,group by只负责分组。
order by优先级最低,在最后
group by 语句执行后记录会按关键字自动升序?
不一定,group by只负责分组。
本回答被提问者采纳
flyingFish211
发布于2011-04-22 13:13
评论
15
1