以下列举了公用表/临时表/聚合函数三个因素为例子(覆盖索引因素除外,有利用此类索引都会以索引顺序)

环境:

Microsoft SQL Server 2014 (SP1-GDR) (KB3194720) - 12.0.4232.0 (X64) Sep 23 2016 18:45:14 Copyright (c) Microsoft CorporationDeveloper Edition (64-bit) on Windows NT 6.3 <X64> (Build 10240: )

  

--公用表表达式
--1、
;WITH CTE
AS
(
SELECT 1 AS ID,2 AS ID2
UNION ALL
SELECT 2 AS ID,1 AS ID2
UNION ALL
SELECT 0 AS ID,0 AS ID2
)
SELECT ID2,ID FROM CTE GROUP BY ID,ID2;--2、
;WITH CTE
AS
(
SELECT 1 AS ID,2 AS ID2
UNION ALL
SELECT 2 AS ID,1 AS ID2
UNION ALL
SELECT 0 AS ID,0 AS ID2
)
SELECT ID,ID2,COUNT(*) FROM CTE GROUP BY ID,ID2;--3、
;WITH CTE
AS
(
SELECT 1 AS ID,2 AS ID2
UNION ALL
SELECT 2 AS ID,1 AS ID2
UNION ALL
SELECT 0 AS ID,0 AS ID2
)
SELECT ID,ID2 FROM CTE GROUP BY ID2,ID;--4、
;WITH CTE
AS
(
SELECT 1 AS ID,2 AS ID2
UNION ALL
SELECT 2 AS ID,1 AS ID2
UNION ALL
SELECT 0 AS ID,0 AS ID2
)
SELECT ID,ID2,COUNT(*) FROM CTE GROUP BY ID2,ID;

  

--临时表
IF OBJECT_ID('Tempdb..#CTE') IS NOT NULLDROP TABLE #CTE;
SELECT 1 AS ID,2 AS ID2 INTO #CTE
UNION ALL
SELECT 2 AS ID,1 AS ID2
--5、
SELECT ID,ID2,COUNT(*) FROM #CTE GROUP BY ID,ID2;
--6、
SELECT ID,ID2 FROM #CTE GROUP BY ID,ID2;
--7、
SELECT ID,ID2,COUNT(*) FROM #CTE GROUP BY ID2,ID;
--8、
SELECT ID,ID2 FROM #CTE GROUP BY ID2,ID;

显示效果:

结论:表按分组列(group by 后)顺序没聚合函数时 从左到右,非则反之。特殊情况CTE时按存储显示列(SELECT)顺序从左到右
这一部分的列存储顺序

;WITH CTE
AS
(
SELECT 1 AS ID,2 AS ID2
UNION ALL
SELECT 2 AS ID,1 AS ID2
UNION ALL
SELECT 0 AS ID,0 AS ID2
)

转载于:https://www.cnblogs.com/Roy_88/p/6567269.html

分享小知识:善用Group By排序相关推荐

  1. Java小知识-----Map 按Key排序和按Value排序

    Map排序的方式有很多种,这里记录下自己总结的两种比较常用的方式:按键排序(sort by key), 按值排序(sort by value). 1.按键排序 jdk内置的java.util包下的Tr ...

  2. python 列表自动排序_Python学习小技巧之列表项排序的示例代码分享

    这篇文章主要给大家介绍了Python学习小技巧之列表项排序的相关资料,文中介绍的非常详细,需要的朋友们可以参借鉴,下面跟着小编一起来学习学习吧. 本文介绍的是关于Python列表项排序的相关内容,分享 ...

  3. 阿尔克分享平面设计的基本常识,以及ps软件小知识

    A4幅面画册及宣传品设计常识: A:最小字体不能小过5号,常规在8号左右:标题最大应掌握在10-18号. B:标题与正文之间层次脉络清晰(通过段落.字体.大小.粗细.色彩.图标等方式标示). C:字距 ...

  4. Ps图层工具怎么使用?以下是我分享的关于ps图层几个小知识

    Ps图层工具怎么使用?以下是我分享的关于ps图层几个小知识 我们做平面设计的ps是我们必须要会操作的软件,那ps有很多工具我们都要学会使用,包括图层工具.套索工具.移动工具.字体工具.钢笔工具等等很多 ...

  5. 费希尔控制器小知识的分享

    费希尔控制器有很多不同的种类,今天主要跟大家分享一下费希尔阀门控制器的一些小知识. 费希尔控制器作用原理: 1.当被调介质为高压.高温.低温.易燃.易爆.有毒时,往往会将填料压得很紧实防止对外泄露,但 ...

  6. 名悦集团:开车从不追尾,老司机分享驾驶避免事故小知识

    听交通广播,我们几乎每天都能听到高速路上,高架桥上,上班路上发生追尾事故,有时候是个平常的上下班高峰期.很多人会纳闷,车开的好好的,怎么就会发生追尾事故呢.开车在路上,难免会有磕磕碰碰.道路千万条,安 ...

  7. 名悦集团分享汽车保养小知识,汽车异味轻松去除有妙招

    其实对于很多人来说,晕车的原因并不是因为体质问题,大多数晕车的人都是因为受不了车上的异味.还有根据皮革的材质,汽车内香水的选择也很重要,在一个封闭的环境里,一点点的异味都会被无限放大,使得不晕车的人也 ...

  8. 冬去春来,名悦集团分享的这些用车小知识你知多少

    冬去春来,就要换季了.无论是春季旅行还是开车去上班,别忘了照顾好你的爱车.保养汽车意味着爱自己.那么在初春换季之时,名悦集团小编将向你分享下这些使用汽车的小知识.因为只有定期保养,才可以做到真正的放心 ...

  9. 网络安全周 | 分享8个网络安全小知识

    如今,大家的生活与互联网已密不可分,每天享受着网络带给我们的服务和便利,工作.娱乐- 但网络也是一把双刃利器网络风险无孔不入,信息泄露.网络诈骗.虚假信息满天飞-- 所以,网络安全不仅关乎我们的切身利 ...

  10. 分享二十条机械设计小知识

    分享二十条机械设计小知识 一.螺纹联接的防松原因和措施是什么? 原因:螺纹联接在冲击,振动和变载的作用下,预紧力可能在某一瞬间消失,联接有可能松脱,高温的螺纹联接,由于温度变形差异等原因,也可能发生松 ...

最新文章

  1. Centos7.4安装Nginx
  2. 计算机程序的思维逻辑 (63) - 实用序列化: JSON/XML/MessagePack
  3. R语言stats包的setNames函数和data.table包的setnames函数为数据对象设置名称实战
  4. mongodb常用管理命令
  5. 为什么要学网络营销?
  6. 红帽企业版6.0 KVM虚拟化实战攻略02
  7. linux死锁的例子,操作系统教程—Linux实例分析 孟庆昌 第8章 死锁new.ppt
  8. C/C++ OpenCV图像的阈值操作
  9. 一个关于反序列化的小问题
  10. CISA 发布关于 Treck TCP/IP 栈中新漏洞的 ICS 安全公告
  11. hadoop环境准备-大数据Week5-DAY6-1-hadoop
  12. 【NOIP2004】【Luogu1085】不高兴的津津
  13. (Quicker)懒人福利:鼠标快捷操作工具箱
  14. centos7 配置anaconda及anaconda常用命令
  15. Ubantu 查看显卡相关信息
  16. 全面向新能源转型 透过柠檬混动DHT了解长城汽车森林式生态体系
  17. 给ImageView做圆角处理
  18. Leetcode 1653. 使字符串平衡的最少删除次数
  19. 濡沫江湖一直显示获取服务器地址,濡沫江湖霜儿剧情任务怎么完成?霜儿专属剧情任务接取以及完成攻略...
  20. HNOI 2012 永无乡

热门文章

  1. 关于sqlmap的配置和基本使用教程
  2. 指定 年-月-日 将其封装tree树状结构
  3. SpringHttpInvoker解析3-客户端实现
  4. POJ1961 Period
  5. C# 全局唯一标识符 (GUID)
  6. Python脚本控制的WebDriver 常用操作 十八 获取测试对象的css属性
  7. 使用脚本开启客户端远程桌面
  8. 编程大讲坛 坛坛是佳酿--编程大讲坛:C语言核心开发技术从入门到精通
  9. 2006年博客之星(小废物点评版)
  10. linux web目录写入权限命令,Linux下Web目录和文件安全权限设置