金典 SQL笔记(9)
- page301-354其它解决方式
- ---开窗函数
- --測试数据及表
- USE [NB]
- GO
- /****** 对象: Table [dbo].[T_Person2] 脚本日期: 08/14/2015 11:24:46 ******/
- SET ANSI_NULLS ON
- GO
- SET QUOTED_IDENTIFIER ON
- GO
- SET ANSI_PADDING ON
- GO
- CREATE TABLE [dbo].[T_Person3] (
- [FName] [varchar] (20) NULL,
- [FCity] [varchar] (20) NULL,
- [FAge] INT,
- FSalary INT
- ) ON [PRIMARY]
- GO
- SET ANSI_PADDING OFF
- INSERT INTO T_Person3(FName ,FCity, FAge,FSalary )
- VALUES('Tom' ,'BeiJing', 20,3000 )
- INSERT INTO T_Person3(FName ,FCity, FAge,FSalary )
- VALUES('Tim' ,'ChengDu', 21,4000 )
- INSERT INTO T_Person3(FName ,FCity, FAge,FSalary )
- VALUES('Jim' ,'BeiJing', 22,3500 )
- INSERT INTO T_Person3(FName ,FCity, FAge,FSalary )
- VALUES('Lily' ,'LonDon', 21,2000 )
- INSERT INTO T_Person3(FName ,FCity, FAge,FSalary )
- VALUES('John' ,'NewYork', 22,1000 )
- INSERT INTO T_Person3(FName ,FCity, FAge,FSalary )
- VALUES('YaoMing' ,'BeiJing', 20,3000 )
- INSERT INTO T_Person3(FName ,FCity, FAge,FSalary )
- VALUES('Swing' ,'LonDon', 22,2000 )
- INSERT INTO T_Person3(FName ,FCity, FAge,FSalary )
- VALUES('Guo' ,'NewYork', 20,2800 )
- INSERT INTO T_Person3(FName ,FCity, FAge,FSalary )
- VALUES('YuQian' ,'BeiJing', 24,8000 )
- INSERT INTO T_Person3(FName ,FCity, FAge,FSalary )
- VALUES('Ketty' ,'London', 25,8500 )
- INSERT INTO T_Person3(FName ,FCity, FAge,FSalary )
- VALUES('Merry' ,'BeiJing', 23,3500 )
- INSERT INTO T_Person3(FName ,FCity, FAge,FSalary )
- VALUES('Smith' ,'ChengDu', 30,3000 )
- INSERT INTO T_Person3(FName ,FCity, FAge,FSalary )
- VALUES('Bill' ,'BeiJing', 25,2000 )
- INSERT INTO T_Person3(FName ,FCity, FAge,FSalary )
- VALUES('Jerry' ,'NewYory', 24,3300 )
- SELECT * FROM T_Person3
- --与聚合函数一样,开窗函数也是对行集组进行聚合计算
- --可是它不像普通聚合函数那样每组仅仅返回一个值 ,开窗函数能够
- --为每组返回多个值,由于开窗函数所运行聚合计算的行集组是窗
- --口ISO SQL 规定了这种函数为开窗函数 ,在oracle 中则被称为
- --分析函数, 而在DB2中则被称为 OLAP函数
- SELECT COUNT (*) FROM T_Person3
- --以下俩个表达是一个意思
- SELECT FCity, FAge,COUNT (*) OVER () FROM T_Person3
- SELECT FCity, FAge,COUNT (*) FROM T_Person3
- WHERE FSalary < 5000
- GROUP BY FCity,FAge
- --OVERkeyword表示把函数当成开窗函数而不是聚合函数
- --SQL标准同意将全部聚合函数用做开窗函数 ,使用OVER keyword来
- --区分这俩种使用方法
- --上面中count(*)over() 对于查询结果的每一行都返回全部符合
- --条件的行的条数OVER()keyword后的括号里还常常加入选项 ,用以
- --改变进行聚合运算的窗体范围假设 OVER()keyword后面的括号里的
- --选项为空, 则开窗函数会对结果集中的全部行进行聚合运算
- --partition by 子句
- --开窗函数over() keyword后的括号里 ,能够使用partition by 子句
- --来定义行的区分,从而进行聚合计算与 group by子句不同,
- --partition by子句创建的分区是独立于结果集的 ,创建的分区仅仅是
- --提供聚合计算的并且不同的开窗函数所创建的分区也互不影响
- --范例以下SQL 用于显示每个人员的信息及所属城市的人员数
- --同一个SQL 语句中能够使用多个开窗函数 ,并且这些开窗函数并不会
- --相互干扰
- --范例
- SELECT FName, FCity, FAge , FSalary,
- COUNT(*) OVER ( PARTITION BY FCity),
- COUNT(*) OVER ( PARTITION BY FAge) FROM t_Person3
- --with子句与子查询
- --一次定义多次使用用于提取子查询
- WITH
- SSSS AS
- (
- SELECT FAge FROM T_person3 WHERE FAge <24
- )
- SELECT * FROM T_person3 AS t WHERE T.FAge IN ( SELECT * FROM SSSS )
- --374
- with
- cr as
- (
- select FAge from T_person3
- )
- select * from T_person3 where FAge in ( select * from cr )
金典 SQL笔记(9)的更多相关文章
- 金典 SQL笔记(4)
由于在本地笔记上写的.CSDN markdown编辑器仅仅支持.md格式导入, 图片没办法直接导进去.写的多了懒的一张一张图片切图上传; 直接整个文章切成图片上传上去了. watermark/2/te ...
- 金典 SQL笔记(2)
由于在本地笔记上写的.CSDN markdown编辑器仅仅支持.md格式导入, 图片没办法直接导进去.写的多了懒的一张一张图片切图上传; 直接整个文章切成图片上传上去了.
- 金典 SQL笔记(6)
page223-索引 --利用SQL 语句创建索引 --CREATE INDEX 索引名称on 表名(字段 ,字段, 字段字段n) --索引名称必须为唯一的,字段 ,字段, 同意一个到多个 --范例为 ...
- 金典 SQL笔记 SQL语句汇总
SELECT * FROM (SELECT ROW_NUMBER() OVER ( ORDER BY id) AS rowN,FNumber, FName,FSalary ,Fage FROM dbo ...
- SQL 笔记 By 华仔
-------------------------------------读书笔记------------------------------- 笔记1-徐 最常用的几种备份方法 笔记2-徐 收缩数据 ...
- SQL笔记 --- 数据库设计步骤(转)
SQL笔记 --- 数据库设计步骤 目录 总体设计过程需求分析概念结构设计逻辑结构设计数据库物理设计数据库实施数据库运行和维护 总体设计过程 0 » 下一篇:vim 命令集 posted @ 2012 ...
- 【程序员的SQL金典】笔记(第6章~第11章)
第六章 索引与约束 1.索引用来提高数据的检索速度,而约束则用来保证数据的完整性. 2.创建索引 创建索引的SQL 语句是CREATE INDEX,其语法如下: CREATE INDE ...
- 【程序员的SQL金典】笔记(第1章~第5章)
第一章数据库入门 1.概念: 数据库 表 列 记录(行) 主键 索引 第二章 数据表的创建和管理 1.数据库系统中的数据类型大致可以分为五类:整数.数值.字符相关.日期时间以及二进 ...
- SQL笔记1:SELECT及SELECT高级应用
T-SQL笔记1:SELECT及SELECT高级应用 本章摘要 1:安装AdventureWorks 2:基本运算符和表达式 3:between 4:like 5:escape 6:TOP 7:G ...
随机推荐
- adb shell root
因为开发需要,我经常会用到adb这个工具(Android Debug Bridge),我们都知道adb shell默认是没有root权限的,修改系统文件就很不方便了,adb push一个文件就提示Pe ...
- win7多重网络之默认网关问题
如果有谁做硬件的在用MAC,跟我讲一声好用不好用...有常用软件清单最好.windows已经用的无力吐槽了. 机子上有两块网卡,一块有线一块无线,有线的连接内部网络,无线连接外部网络, 问题描述: 内 ...
- Linux下Wi-Fi配置工具2
上回说到,linux下面的Wi-Fi配置工具,说是江湖多事,风起云涌...嗯,这回是真的要动手配置了.各种麻烦啊,想死的心都有了有木有啊. 尝试用iwconfig 话说上回说用iwconfig配置Wi ...
- Java基础——线程总结
Java基础--线程总结 一.线程是什么? 线程:一个程序里不同的运行路径. 二.怎样创建线程? 两种方法创建线程: 第一种 (1)定义详细功能类实现Runnable接口,能够多次调用而实现数据共享 ...
- init: cannot execve(‘XXX’):Permission denied问题
近期在给android 4.3系统进行root时候,一直出现例如以下的红色权限问题 : 7.695741] Freeing init memory: 236K [ 8.555286] ini ...
- shell脚本中执行mysql 语句,去除warning using a password on the command line interface can be insecure信息
方法二:使用mysql参数的方法 mysql -u$user -p$pass -D $db -e "select host from user;"当然,可以通过将传参的方式来传递 ...
- timedelta
from datetime import datetime start="09:35:23" end="10:23:00" start_dt = datetim ...
- C# 取字符串中间文本 取字符串左边 取字符串右边
好像是第二种效率高一点,取str字符串中123左边的所有字符:第一种Between(str,"","123"),而第二种是Between(str,null,&q ...
- unity, 在surface shader中访问顶点色
//ref: Custom data computed per-vertex: http://docs.unity3d.com/Manual/SL-SurfaceShaderExamples.html ...
- 【Android界面实现】View Animation 使用介绍
转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 我们能够使用view animation 动画系统来给View控件加入tween动画(下称& ...