SQL:每年每月最高的两个温度
2015-10-16 17:53
260 查看
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Temperature](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Month] [int] NULL,
[Year] [int] NULL,
[Temperature] [int] NULL,
CONSTRAINT [PK_Temperature] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
--每年每月最高的两个温度(版本1)
select t.* from (
select [Temperature],[YEAR],[Month],ROW_NUMBER() over(partition by [YEAR],[Month] order by [Temperature] desc) rownumber from [Temperature]
)t where t.rownumber<=2
--每年每月最高的两个温度(版本2)
select * from [Temperature] a where (
select COUNT(*) from [Temperature] b where a.Year=b.Year and a.Month=b.Month and a.Temperature<b.Temperature
)<2 order by a.Year,a.Month
GO
CREATE TABLE [dbo].[Temperature](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Month] [int] NULL,
[Year] [int] NULL,
[Temperature] [int] NULL,
CONSTRAINT [PK_Temperature] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
--每年每月最高的两个温度(版本1)
select t.* from (
select [Temperature],[YEAR],[Month],ROW_NUMBER() over(partition by [YEAR],[Month] order by [Temperature] desc) rownumber from [Temperature]
)t where t.rownumber<=2
--每年每月最高的两个温度(版本2)
select * from [Temperature] a where (
select COUNT(*) from [Temperature] b where a.Year=b.Year and a.Month=b.Month and a.Temperature<b.Temperature
)<2 order by a.Year,a.Month
相关文章推荐
- MySQL SQL语句优化的10条建议
- MySql 查询优化
- Oracle中insert into select from用法、table (fn_split())用法、select中的as扩展替代字段用法、Oracle序列
- Redis简介 对比Memcache 应用场景
- Mariadb安装部署
- SQL 笔记
- iOS中 用FMDB封装一个SQLite数据库
- iOS中 用FMDB封装一个SQLite数据库
- 查询练习mysql
- Redis Set命令
- 【Mysql学习笔记】DDL、DML、DCL区别
- Oracle中DBMS_JOB创建定时任务
- NoSQL生态系统(nosql ecosystem)
- mysql 函数大全
- 按照网上的资料进行的百万级循环插入的效率分析循环插入数据库90万条数据的代码
- 詩經甲骨文解讀:桑中(國風)
- MYSQL SQL表操作
- SQL Server 复制优化
- 超级简单的mysql主从数据库配置攻略以及错误处理
- SQL Server编程必知必会 -- (58-79 点总结)