SQL语句中,如果有group by 和order by两个语句,是先分组还是先排序?

groupby语句执行后记录会按关键字自动升序吗?... group by 语句执行后记录会按关键字自动升序吗? 展开
 我来答
greystar_cn
推荐于2017-09-05 · 知道合伙人软件行家
greystar_cn
知道合伙人软件行家
采纳数:16407 获赞数:17260
本人主要从事.NET C#方向的技术开发工作,具有10多年的各类架构开发工作经验。

向TA提问 私信TA
展开全部
先进行分组处理。

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。
flyingFish211
推荐于2018-02-19 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.5万
采纳率:50%
帮助的人:1.1亿
展开全部
肯定是group by先

order by优先级最低,在最后

group by 语句执行后记录会按关键字自动升序?
不一定,group by只负责分组。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
geniusqiao
2011-04-22 · 超过29用户采纳过TA的回答
知道答主
回答量:66
采纳率:0%
帮助的人:69.1万
展开全部
先分组,后排序。
建议 养成一个良好的习惯,指定排序
order by c1 asc -- 升序
order by c1 desc -- 降序
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kv61349188
2011-04-22
知道答主
回答量:29
采纳率:0%
帮助的人:0
展开全部
这几条关键字 是有先后顺序的.

where.....group by....having.....order by

都是可选..但是如果全部写出来 必须是这个顺序...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
udd1020
2011-04-22 · TA获得超过351个赞
知道小有建树答主
回答量:248
采纳率:0%
帮助的人:233万
展开全部
按姓名排序:
select 姓名,SUM(销售额) as 销售 from 销售表 order by 姓名 group by 姓名

按销售排序:
select 姓名,SUM(销售额) as 销售 from 销售表 group by 姓名 order by SUM(销售额) desc
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式