分享小知识:善用Group By排序
以下列举了公用表/临时表/聚合函数三个因素为例子(覆盖索引因素除外,有利用此类索引都会以索引顺序)
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排序相关推荐
- Java小知识-----Map 按Key排序和按Value排序
Map排序的方式有很多种,这里记录下自己总结的两种比较常用的方式:按键排序(sort by key), 按值排序(sort by value). 1.按键排序 jdk内置的java.util包下的Tr ...
- python 列表自动排序_Python学习小技巧之列表项排序的示例代码分享
这篇文章主要给大家介绍了Python学习小技巧之列表项排序的相关资料,文中介绍的非常详细,需要的朋友们可以参借鉴,下面跟着小编一起来学习学习吧. 本文介绍的是关于Python列表项排序的相关内容,分享 ...
- 阿尔克分享平面设计的基本常识,以及ps软件小知识
A4幅面画册及宣传品设计常识: A:最小字体不能小过5号,常规在8号左右:标题最大应掌握在10-18号. B:标题与正文之间层次脉络清晰(通过段落.字体.大小.粗细.色彩.图标等方式标示). C:字距 ...
- Ps图层工具怎么使用?以下是我分享的关于ps图层几个小知识
Ps图层工具怎么使用?以下是我分享的关于ps图层几个小知识 我们做平面设计的ps是我们必须要会操作的软件,那ps有很多工具我们都要学会使用,包括图层工具.套索工具.移动工具.字体工具.钢笔工具等等很多 ...
- 费希尔控制器小知识的分享
费希尔控制器有很多不同的种类,今天主要跟大家分享一下费希尔阀门控制器的一些小知识. 费希尔控制器作用原理: 1.当被调介质为高压.高温.低温.易燃.易爆.有毒时,往往会将填料压得很紧实防止对外泄露,但 ...
- 名悦集团:开车从不追尾,老司机分享驾驶避免事故小知识
听交通广播,我们几乎每天都能听到高速路上,高架桥上,上班路上发生追尾事故,有时候是个平常的上下班高峰期.很多人会纳闷,车开的好好的,怎么就会发生追尾事故呢.开车在路上,难免会有磕磕碰碰.道路千万条,安 ...
- 名悦集团分享汽车保养小知识,汽车异味轻松去除有妙招
其实对于很多人来说,晕车的原因并不是因为体质问题,大多数晕车的人都是因为受不了车上的异味.还有根据皮革的材质,汽车内香水的选择也很重要,在一个封闭的环境里,一点点的异味都会被无限放大,使得不晕车的人也 ...
- 冬去春来,名悦集团分享的这些用车小知识你知多少
冬去春来,就要换季了.无论是春季旅行还是开车去上班,别忘了照顾好你的爱车.保养汽车意味着爱自己.那么在初春换季之时,名悦集团小编将向你分享下这些使用汽车的小知识.因为只有定期保养,才可以做到真正的放心 ...
- 网络安全周 | 分享8个网络安全小知识
如今,大家的生活与互联网已密不可分,每天享受着网络带给我们的服务和便利,工作.娱乐- 但网络也是一把双刃利器网络风险无孔不入,信息泄露.网络诈骗.虚假信息满天飞-- 所以,网络安全不仅关乎我们的切身利 ...
- 分享二十条机械设计小知识
分享二十条机械设计小知识 一.螺纹联接的防松原因和措施是什么? 原因:螺纹联接在冲击,振动和变载的作用下,预紧力可能在某一瞬间消失,联接有可能松脱,高温的螺纹联接,由于温度变形差异等原因,也可能发生松 ...
最新文章
- Centos7.4安装Nginx
- 计算机程序的思维逻辑 (63) - 实用序列化: JSON/XML/MessagePack
- R语言stats包的setNames函数和data.table包的setnames函数为数据对象设置名称实战
- mongodb常用管理命令
- 为什么要学网络营销?
- 红帽企业版6.0 KVM虚拟化实战攻略02
- linux死锁的例子,操作系统教程—Linux实例分析 孟庆昌 第8章 死锁new.ppt
- C/C++ OpenCV图像的阈值操作
- 一个关于反序列化的小问题
- CISA 发布关于 Treck TCP/IP 栈中新漏洞的 ICS 安全公告
- hadoop环境准备-大数据Week5-DAY6-1-hadoop
- 【NOIP2004】【Luogu1085】不高兴的津津
- (Quicker)懒人福利:鼠标快捷操作工具箱
- centos7 配置anaconda及anaconda常用命令
- Ubantu 查看显卡相关信息
- 全面向新能源转型 透过柠檬混动DHT了解长城汽车森林式生态体系
- 给ImageView做圆角处理
- Leetcode 1653. 使字符串平衡的最少删除次数
- 濡沫江湖一直显示获取服务器地址,濡沫江湖霜儿剧情任务怎么完成?霜儿专属剧情任务接取以及完成攻略...
- HNOI 2012 永无乡