Heim >Backend-Entwicklung >PHP-Tutorial >SQL Server ermittelt den Maximalwert, den Minimalwert, die dem Maximalwert entsprechende Zeit und die dem Minimalwert entsprechende Zeit

SQL Server ermittelt den Maximalwert, den Minimalwert, die dem Maximalwert entsprechende Zeit und die dem Minimalwert entsprechende Zeit

jacklove
jackloveOriginal
2018-05-09 09:18:174408Durchsuche

In diesem Artikel werden die relevanten Kenntnisse des SQL-Servers erläutert, um die Gruppierung Maximalwert, Minimalwert, Zeit entsprechend dem Maximalwert und Zeit entsprechend dem Minimalwert zu ermitteln.

Erstellen Sie zuerst die Tabelle „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 Mehrere Testdaten

INSERT [dbo].[Students] ([age], [name], [addTime]) VALUES (22, N'李思', '2015-04-08 01 :00 :00.000')
INSERT [dbo].[Students] ([age], [name], [addTime]) VALUES (8, N'李思', '2017-05-03 00:00: 00.000' )
INSERT [dbo].[Students] ([age], [name], [addTime]) VALUES (98, N'李思', '2017-10-03 00:00:00.000')
INSERT [dbo].[Students] ([age], [name], [addTime]) VALUES (34, N'张三', '2016-09-08 00:00:00.000')
INSERT [ dbo].[Students] ([age], [name], [addTime]) VALUES (45, N'张三','2011-05-08 00:00:00.000')
INSERT [dbo ]. [Studenten] ([Alter], [Name], [addTime]) VALUES (5, N'Zhang San', '2014-04-01 00:00:00.000')

Der erste Weg Schreibweise:

Diese Schreibweise verwendet die Fensterfunktion . Die Beschreibung des -Verhaltens der Fensterfunktion erscheint in der OVER-Klausel der Funktion und umfasst mehrere Elemente. 3 Kernelemente: Partition, Sortierung und Framework

eindeutigen Namen auswählen,

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(partition by name) minAddTime
from (
select name,addtime,
max(age) over( Partition nach Name ) maxAge,
min(age) over(partition by name) minAge,
RANK() over(partition by name order by age desc) maxAgeNum ,
RANK() over(partition by name nach Alter ordnen ) minAgeNum von Schülern
) s

Zweite Schreibweise:

mit s als

(
select name,max(age) maxAge,min( Alter) minAge von Schülern
nach Namen gruppieren
)
select name,max(maxAge) maxAge,max(maxAgeTime) maxAgeTime,max(minAge) minAge,max(minAgeTime) minAgeTime from (
select ss.name ,s.maxAge,ss.addTime maxAgeTime,0 minAge, '' minAgeTime von Schülern ss inner join s auf ss.name=s.name und ss.age=s.maxAge

Union alleselect ss.name,0 maxAge , '' maxAgeTime,s.minAge minAge,ss.addTime minAgeTime von Schülern ss inner join s auf ss.name=s.name und ss.age=s.minAge
) eine Gruppe nach Namen

In diesem Artikel ermittelt SQL Server den Maximalwert, den Minimalwert, die entsprechende Zeit des Maximalwerts und die Zeit, die dem Minimalwert der Gruppe entspricht. Weitere Lernmaterialien finden Sie hier Achten Sie auf die chinesische PHP-Website.

Verwandte Empfehlungen:

Verwandte Erklärungen zum Left-Join-Ein- und Where-Bedingungsplatzieren

Über PHP+MySQL-Fuzzy-Query-Funktionen Wissen

Wie man Dateien über PHP kopiert und verschiebt

Das obige ist der detaillierte Inhalt vonSQL Server ermittelt den Maximalwert, den Minimalwert, die dem Maximalwert entsprechende Zeit und die dem Minimalwert entsprechende Zeit. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn