SQL Server の RANK 関数,NTILE 関数で順位,四分位を取得する

 SQL Server でウィンドウ関数を使い,1行前の行を取得するではウィンドウ関数を用いて1行前の行を取得した.今回は RANK 関数NTILE 関数を用いて順位,四分位を得る.

テーブル定義

 テーブル定義は以下の通りである.

CREATE TABLE [dbo].[Temperature](
	[年月日] [date] NOT NULL,
	[都道府県] [nvarchar](50) NOT NULL,
	[日別最高気温] [float] NOT NULL,
	[都道府県コード] [nvarchar](2) NOT NULL
) ON [PRIMARY]
GO

クエリ

 下記クエリを発行して結果を得る.

USE EMERGENCYDB;
GO
SELECT	*
,	RANK()	OVER(PARTITION BY 都道府県コード	ORDER BY 日別最高気温	DESC)	AS 'RANK'
,	NTILE(4)OVER(PARTITION BY 都道府県コード	ORDER BY 日別最高気温	DESC)	AS 'QUARTILE'
FROM	dbo.Temperature

結果

 最初の 10 行のみ結果を表示する.都道府県ごとに日別最高気温のランキングを行っている.

年月日	都道府県	日別最高気温	都道府県コード	RANK	QUARTILE
2017-07-14	北海道	34.9	1	1	1
2015-08-05	北海道	34.5	1	2	1
2020-08-19	北海道	34.3	1	3	1
2019-08-02	北海道	34.2	1	4	1
2019-05-27	北海道	34.2	1	4	1
2010-08-30	北海道	34.1	1	6	1
2018-07-31	北海道	33.9	1	7	1
2011-08-11	北海道	33.8	1	8	1
2014-06-04	北海道	33.7	1	9	1
2019-07-30	北海道	33.5	1	10	1

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください