SQL Server は、グループの最大値、最小値、最大値に対応する時間、および最小値に対応する時間を見つけます。

jacklove
リリース: 2023-03-25 17:10:02
オリジナル
4358 人が閲覧しました

この記事ではSQL Serverにおける

グループ化の最大値、最小値、最大値に相当する時間、最小値に相当する時間に関する知識を解説します。

最初に Students テーブルを作成します

CREATE TABLE [dbo].[Students](

[Id] [int] IDENTITY(1,1) NOT NULL,
[age] [int] NULL,
[name] [nvarchar ] (50) NULL,
[addTime] [datetime] NULL
) ON [PRIMARY]

テストデータをいくつか挿入

INSERT [dbo].[生徒] ([年齢], [名前], [ addTime] ) VALUES (22, N'李思', '2015-04-08 01:00:00.000')

INSERT [dbo].[生徒] ([年齢], [名前], [addTime]) VALUES ( 8, N'李思', '2017-05-03 00:00:00.000')
INSERT [dbo].[生徒] ([年齢], [名前], [追加時刻]) VALUES (98, N'李思' , '2017-10-03 00:00:00.000')
INSERT [dbo].[生徒] ([年齢], [名前], [addTime]) VALUES (34, N'张三', '2016) -09 -08 00:00:00.000')
INSERT [dbo].[生徒] ([年齢], [名前], [追加時間]) VALUES (45, N'张三','2011-05-08 00) :00 :00.000')
INSERT [dbo].[生徒] ( [年齢], [名前], [addTime]) VALUES (5, N'张三', '2014-04-01 00:00:00.000' )

最初の書き方:

この書き方では、ウィンドウ

関数 を使用します。ウィンドウ関数の 動作の説明は、関数の OVER 句に表示され、複数の要素が含まれます。パーティショニングとソート、そして frameworkselect unique name,

maxAge, max(case maxAgenum when 1 then addtime else '' end) over(partition by name) maxAddTime ,

minage,max(case minAgenum when 1 then addtime else '' '' end) over(名前で分割) minAddTime
from (
select name,addtime,
max(age) over(名前で分割) maxAge,
min(age) over(名前で分割) minAge,
RANK() over(名前順に年齢順に分割) maxAgeNum ,
RANK() over(名前順に年齢順に分割) 学生からの minAgeNum
) s

2 番目の書き方:

with s as

(

select name,max (年齢) maxAge 、min(年齢) minAge の生徒
名前でグループ化
)
名前を選択、max(maxAge) maxAge,max(maxAgeTime) maxAgeTime,max(minAge) minAge,max(minAgeTime) minAgeTime from (
ss を選択.name,s .maxAge,ss.addTime maxAgeTime,0 minAge, '' minAgeTime 学生から ss.name=s.name と ss.age=s.maxAge で s を内部結合します

union
allselect ss.name ,0 maxAge , '' maxAgeTime,s.minAge minAge,ss.addTime minAgeTime 学生から ss.name=s.name および ss.age=s.minAge で s を内部結合します) 名前によるグループ

この SQL サーバー最大値のグループ化を求める 値、最小値、最大値対応時間、最小値対応時間については、PHP 中国語 Web サイトを参照してください。

関連する推奨事項:

left join on と where 条件の配置に関する関連説明


php+mysql のファジークエリ関数に関する関連知識


php を介してファイルをコピーおよび移動する方法

以上がSQL Server は、グループの最大値、最小値、最大値に対応する時間、および最小値に対応する時間を見つけます。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート