文档章节

SQLServer2012表表达式练习

XuePeng77
 XuePeng77
发布于 2016/11/17 23:27
字数 720
阅读 28
收藏 0
点赞 0
评论 0

表结构与数据:https://github.com/XuePeng87/TSQLV4

练习1-1

练习内容:返回每个雇员在orderdate列中的最大值
涉及的表:Sales.Orders
输出的列:empid, maxorderdate
正确结果:9行
SELECT empid, MAX(orderdate) AS maxorderdate 
FROM Sales.Orders GROUP BY empid;

 练习1-2

练习内容:编写一个派生表和Orders表之间的连接查询,返回每个雇员最大订单日期的订单
涉及的表:Sales.Orders
输出的列:empid, maxorderdate
正确结果:10行
SELECT O1.empid, O2.maxorderdate, O1.orderid, O1.custid FROM Sales.Orders O1
JOIN 
(SELECT empid, MAX(orderdate) AS maxorderdate FROM Sales.Orders GROUP BY empid) AS O2 
ON O1.empid = O2.empid AND O1.orderdate = O2.maxorderdate;

练习2-1

练习内容:编写一个查询,计算按orderdate、orderid排序的每个订单的行号
涉及的表:Sales.Orders
输出的列:orderid, orderdate, custid, empid, rownum
正确结果:830行
SELECT orderid, orderdate, custid, empid, 
ROW_NUMBER() OVER(ORDER BY orderdate, orderid) AS rownum 
FROM Sales.Orders ORDER BY orderdate, orderid;

练习2-2

练习内容:使用CTE,返回行号11至20的行
涉及的表:Sales.Orders
输出的列:orderid, orderdate, custid, empid, rownum
正确结果:10行
WITH O AS 
(
	SELECT orderid, orderdate, custid, empid, 
	ROW_NUMBER() OVER(ORDER BY orderdate, orderid) AS rownum 
	FROM Sales.Orders
)
SELECT * FROM O WHERE rownum BETWEEN 11 AND 20
ORDER BY orderdate, orderid;

练习3

练习内容:使用CTE,递归返回领导Zoya Dolgopyatova(ID=9)的管理链
涉及的表:HR.Employees
输出的列:empid, mgrid, firstname, lastname
正确结果:4行
WITH EmpsCTE AS 
(
	SELECT empid, mgrid, firstname, lastname 
	FROM HR.Employees WHERE empid = 9 

	UNION ALL

	SELECT P.empid, P.mgrid, P.firstname, P.lastname 
	FROM EmpsCTE AS C  
	JOIN HR.Employees AS P 
	ON C.mgrid = P.empid
) 
SELECT empid, mgrid, firstname, lastname FROM EmpsCTE;

练习4-1

练习内容:创建一个视图,返回每位雇员每年的总销售量
涉及的表:Sales.Orders, Sales.OrderDetails
输出的列:empid, orderyear, qty
正确结果:27行
IF OBJECT_ID('Sales.VEmpOrders') IS NOT NULL
	DROP VIEW Sales.VEmpOrders
GO
CREATE VIEW Sales.VEmpOrders
AS
SELECT empid, YEAR(orderdate) AS orderyear, SUM(qty) AS qty FROM 
Sales.Orders O JOIN Sales.OrderDetails D ON O.orderid = D.orderid
GROUP BY empid, YEAR(orderdate);
GO

练习4-2

练习内容:编写一个查询,返回每个雇员截至到当前年(包含当前年)的总销量
涉及的表:Sales.VEmpOrders
输出的列:empid, orderyear, qty, runqty
正确结果:27行
SELECT empid, orderyear, qty, 
(SELECT SUM(qty) FROM Sales.VEmpOrders V2 
WHERE V2.empid = V1.empid AND V2.orderyear <= V1.orderyear) AS runqty 
FROM Sales.VEmpOrders V1

练习5-1

练习内容:创建一个内嵌函数,接受供应商ID和一个数量。返回这个供应商指定数量的最高的单价产品
涉及的表:Production.Products
输出的列:productid, productname, unitprice
正确结果:2行
IF OBJECT_ID('Production.TopProducts') IS NOT NULL 
	DROP FUNCTION Production.TopProducts;
GO
CREATE FUNCTION Production.TopProducts 
(@supid AS INT, @n AS INT) 
RETURNS TABLE 
AS
RETURN 
SELECT TOP(@n) productid, productname, unitprice 
FROM Production.Products 
WHERE supplierid = @supid 
ORDER BY unitprice DESC;
SELECT * FROM Production.TopProducts(5, 2);

练习5-2

练习内容:使用CROSS APPLY运算符,为每个供应商返回两个最昂贵的产品
涉及的表:Production.TopProducts, Production.Suppliers
输出的列:supplierid, companyname, productid, productname, unitprice
正确结果:55行
SELECT S.supplierid, S.companyname, P.productid, P.productname, P.unitprice
From Production.Suppliers AS S 
CROSS APPLY 
Production.TopProducts(S.supplierid, 2) AS P;

 

© 著作权归作者所有

共有 人打赏支持
XuePeng77
粉丝 39
博文 132
码字总数 175794
作品 0
丰台
SQLServer2012单表查询练习

表结构与数据:https://github.com/XuePeng87/TSQLV4 练习1 练习内容:编写一个对Sales.Orders表的查询,返回2015年6月的订单 涉及的表:Sales.Orders 输出的列:orderid, orderdate, custi...

巧乐兹
2016/10/28
24
0
SQLServer2012单表查询练习

表结构与数据:https://github.com/XuePeng87/TSQLV4 练习1 练习内容:编写一个对Sales.Orders表的查询,返回2015年6月的订单 涉及的表:Sales.Orders 输出的列:orderid, orderdate, custi...

杰克鹏仔
2016/11/10
0
0
SQLServer2012子查询练习

表结构与数据:https://github.com/XuePeng87/TSQLV4 练习1 练习内容:编写一个查询,返回Orders表中可以查到的活动最后一天的所有订单 涉及的表:Sales.Orders 输出的列:orderid, orderdat...

巧乐兹
2016/11/05
10
0
SQLServer2012子查询练习

表结构与数据:https://github.com/XuePeng87/TSQLV4 练习1 练习内容:编写一个查询,返回Orders表中可以查到的活动最后一天的所有订单 涉及的表:Sales.Orders 输出的列:orderid, orderdat...

杰克鹏仔
2016/11/10
7
0
SQLServer2012联接查询练习

表结构与数据:https://github.com/XuePeng87/TSQLV4 练习1 练习内容:编写一个查询,为每个雇员生成5个副本 涉及的表:HR.Employees, dbo.Nums 输出的列:empid, firstname, lastname, n 正...

杰克鹏仔
2016/11/10
5
0
SQLServer2012联接查询练习

表结构与数据:https://github.com/XuePeng87/TSQLV4 练习1 练习内容:编写一个查询,为每个雇员生成5个副本 涉及的表:HR.Employees, dbo.Nums 输出的列:empid, firstname, lastname, n 正...

巧乐兹
2016/10/28
5
0
Mybatis 分页插件 4.1.0 发布

如果你也在用Mybatis,建议尝试该分页插件,这一定是最方便使用的分页插件。 分页插件支持任何复杂的单表、多表分页,部分特殊情况请看重要提示。 想要使用分页插件?请看如何使用分页插件 ...

Liuzh_533
2015/12/30
4.7K
7
JFinal2.2自动生成SQLServer2012其中的一些bug

好奇心驱使之下,研究了一下jfinal自动生成代码模块,由于本人现在的项目中用到了sqlserver2012,所以当我用官网下载下来的demo生成的时候发现对sqlserver2012,还是有一些bug的,现在贴出来...

移通信
2016/01/21
102
5
Mybatis 分页插件 PageHelper 5.0.1 发布

Mybatis分页插件 - PageHelper PageHelper 5.0.0 发布了。如果你也在用Mybatis,建议尝试该分页插件,这一定是最方便使用的分页插件。分页插件支持任何复杂的单表、多表分页,部分特殊情况请...

Liuzh_533
2017/04/25
1K
8
《SQLSERVER2012之T-SQL教程》T-SQL表的表达式

表结构与数据:https://github.com/XuePeng87/TSQLV4 表的表达式(Table Expression)是一个命名的查询表达式,MSSQL支持4种类型的表表达式:派生表、公用表表达式(CTE)、视图和内嵌表值函...

杰克鹏仔
2016/11/17
6
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

【面试题】盲人坐飞机

有100位乘客乘坐飞机,其中有一位是盲人,每位乘客都按自己的座位号就坐。由于盲人看不见自己的座位号,所以他可能会坐错位置,而自己的座位被占的乘客会随便找个座位就坐。问所有乘客都坐对...

garkey
46分钟前
0
0
谈谈神秘的ES6——(二)ES6的变量

谈谈神秘的ES6——(二)ES6的变量 我们在《零基础入门JavaScript》的时候就说过,在ES5里,变量是有弊端的,我们先来回顾一下。 首先,在ES5中,我们所有的变量都是通过关键字var来定义的。...

JandenMa
今天
1
0
arts-week1

Algorithm 594. Longest Harmonious Subsequence - LeetCode 274. H-Index - LeetCode 219. Contains Duplicate II - LeetCode 217. Contains Duplicate - LeetCode 438. Find All Anagrams ......

yysue
今天
0
0
NNS拍卖合约

前言 关于NNS的介绍,这里就不多做描述,相关的信息可以查看NNS的白皮书http://doc.neons.name/zh_CN/latest/nns_background.html。 首先nns中使用的竞价货币是sgas,关于sgas介绍可以戳htt...

红烧飞鱼
今天
1
0
Java IO类库之管道流PipeInputStream与PipeOutputStream

一、java管道流介绍 在java多线程通信中管道通信是一种重要的通信方式,在java中我们通过配套使用管道输出流PipedOutputStream和管道输入流PipedInputStream完成线程间通信。多线程管道通信的...

老韭菜
今天
0
0
用Python绘制红楼梦词云图,竟然发现了这个!

Python在数据分析中越来越受欢迎,已经达到了统计学家对R的喜爱程度,Python的拥护者们当然不会落后于R,开发了一个个好玩的数据分析工具,下面我们来看看如何使用Python,来读红楼梦,绘制小...

猫咪编程
今天
1
0
Java中 发出请求获取别人的数据(阿里云 查询IP归属地)

1.效果 调用阿里云的接口 去定位IP地址 2. 代码 /** * 1. Java中远程调用方法 * http://localhost:8080/mavenssm20180519/invokingUrl.action * @Title: invokingUrl * @Description: * @ret......

Lucky_Me
今天
1
0
protobuf学习笔记

相关文档 Protocol buffers(protobuf)入门简介及性能分析 Protobuf学习 - 入门

OSC_fly
昨天
0
0
Mybaties入门介绍

Mybaties和Hibernate是我们在Java开发中应用的比较多的两个ORM框架。当然,目前Mybaties正在慢慢取代Hibernate,这是因为相比较Hibernate而言Mybaties性能更好,响应更快,更加灵活。我们在开...

王子城
昨天
2
0
编程学习笔记之python深入之装饰器案例及说明文档[图]

编程学习笔记之python深入之装饰器案例及说明文档[图] 装饰器即在不对一个函数体进行任何修改,以及不改变整体的原本意思的情况下,增加函数功能的新函数,因为这个新函数对旧函数进行了装饰...

原创小博客
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部