Ich habe eine Tabelle mit einer value
Spalte. Ich möchte die letzte Zeile abzüglich der ersten Zeile berechnen, wie hier gezeigt:
id value
1 10
2 45
3 65
4 95
. .
. .
. .
500 200
Ich möchte erhalten 200 - 10 = 190
Ich habe jedoch versucht, den folgenden Befehl in SQL Server 2012 zu verwenden, LAST
und es FIRST
funktioniert nicht.
SELECT LAST(Value) - FIRST(Value) FROM Counter;
Wie lautet die Syntax für diesen Befehl in SQL Server?
sql-server
sql-server-2012
t-sql
mohammad2050
quelle
quelle
IDENTITY
Spalte oder vielleicht eineDATETIME
Spalte, die definiert, was die "ersten" und "letzten" Zeilen sind?Antworten:
Sie waren nah dran -
FIRST
undLAST
sind von Access; In SQL Server (beginnend mit SQL Server 2012) sind diesFIRST_VALUE()
undLAST_VALUE()
.Wenn Sie 2012 oder besser sind (oder eine Azure SQL-Datenbank), haben Sie folgende Möglichkeit, Ihre Antwort zu erhalten:
quelle
Ein weiterer Weg (der auch in älteren Versionen funktioniert):
quelle
Hier ist eine Möglichkeit, wie Sie das tun können:
Die Idee hier ist, die "ersten" und "letzten" Zeilen zu definieren. Sobald Sie sie definiert haben, können Sie einfach die Subtraktion durchführen.
quelle
Warum nicht die MAX- und Min-Funktion verwenden (Optional, wenn Sie Kriterien haben, verwenden Sie Wo)
Z.B. Wählen Sie (Max (NumFieldName) - Min (NumFieldName)) AS Output FROM TableName
quelle
Value
Spalte immer größer wird. Die Identitätsspalte ist jedoch.