OVER,APPLY,CTE,PIVOT自主检测
来源:互联网 发布:外国人发现淘宝 编辑:程序博客网 时间:2024/05/17 10:27
1、使用OVER开窗函数实现:
查询房间GUID,房间号(room),房间所在楼栋的房间平均价格,房间所在项目的房间平均价格,按项目GUID、楼栋排序GUID排序
预期结果:
SELECT RoomGUID,Room,AVG(ISNULL(Total,0))OVER(partition by BldGuid) AS '楼栋均价',AVG(Total) OVER(PARTITION BY ProjGUID) AS '项目均价'FROM p_RoomORDER BY ProjGUID,BldGUID
2、使用APPLY语法实现:
查出每个项目下均价(楼栋下房间TOTAL/房间数)最高的楼栋,如果并列最高则显示1条。显示楼栋GUID,楼栋名称,楼栋均价,项目名称。结果楼栋按均价降序排序。
预期结果:
SELECT bldInfo.BldGUID,bldInfo.BldName,bldInfo.avgTotal,proj.ProjNameFROM p_Project projCROSS APPLY(select top 1 avg(ISNULL(Total,0)) over(partition by room.BldGUID) as 'avgTotal', p_Project.ProjName,p_Building.BldName,room.BldGUIDfrom p_Room roomleft join p_Project on p_Project.ProjGUID=room.ProjGUIDleft join p_Building on p_Building.BldGUID=room.bldGUIDwhere room.ProjGUID=proj.ProjGUIDorder by avgtotal desc) AS bldInfo
3、使用公用表达式递归实现:
查询每s_class表中,每个班级的完整编码(classFullCode)、全名(ClassFullName)、层级(level)。层级定义为,如果为顶层班级则层级为1,如果是层级为1的班级的子班级,则层级为2,以此递增。
预期结果:
WITH class_CTE AS(--基本语句select ClassFullCode,ClassFullName,ParentCode,0 AS levelfrom s_Class where ParentCode='' or ParentCode is null union all--递归语句select class.ClassFullCode,class.ClassFullName,class.ParentCode ,CTE.level+1from s_Class classinner join class_CTE CTE on class.ParentCode =CTE.ClassFullCode --递归调用)SELECT * FROM class_CTE
4、使用pivot关键字实现:
查询湖南、湖北、山东三省各创建人(createdby)创建了多少客户。
预期结果:
--先以传入PIVOT参数(CstGUID,province)之外的字段,即CreatedBy进行分组--然后系统内部进行casewhen操作--最后进行count聚合SELECT tab.CreatedBy,tab.[湖南],tab.[湖北],tab.[山东]FROM(select CreatedBy,CstGUID,province from p_Customer where Province <>'') as customerPIVOT(count(CstGUID) for provincein([湖南],[湖北],[山东])) AS tab
1 0
- OVER,APPLY,CTE,PIVOT自主检测
- SQL CROSS APPLY OUTER APPLY PIVOT UNPIVOT
- row_number() 、dense_rank() 、rank() 、Over、Pivot用法说明
- row_number(),dense_rank(),rank(),Over,Pivot用法说明
- row_number() 、dense_rank() 、rank() 、Over、Pivot用法说明
- sql连接查询自主检测
- sql子查询自主检测
- CTE~
- CTE
- CTE
- PIVOT
- pivot
- PIVOT
- pivot
- 自主
- SQL Server 2008程序设计之 cte递归查询中限制递归层次,PIVOT和UNPIVOT表旋转的应用
- IoU 检测评价函数 intersection-over-union
- 【个人学习笔记8之--关于OVER子句 多属性的比较 PIVOT 聚合问题】
- Sort List
- ulua和CS之间配合对UIScrollView里面的Button绑定事件
- 备案不用关闭网站的9种技巧
- 这是关于如何学好算法
- 用JAVA实现深度优先搜索
- OVER,APPLY,CTE,PIVOT自主检测
- Linux下Netfilter/IPtables防火墙案例分析
- [ACM] HDU 4884 TIANKENG’s rice shop (模拟)
- lecture12-玻尔兹曼机和受限玻尔兹曼机
- c++中指针,指针的引用,指针的指针的区别
- hibernate的get、load区别
- Android L中水波纹点击效果的实现
- spring整合redis做缓存实例
- Android内存分析和调优