Mam stolik z value
kolumną. Chcę obliczyć ostatni rząd minus pierwszy rząd, jak pokazano tutaj:
id value
1 10
2 45
3 65
4 95
. .
. .
. .
500 200
Chcę uzyskać 200 - 10 = 190
Próbowałem jednak użyć poniższego polecenia w programie SQL Server 2012 LAST
i FIRST
nie działają.
SELECT LAST(Value) - FIRST(Value) FROM Counter;
Jaka jest składnia tego polecenia w SQL Server?
sql-server
sql-server-2012
t-sql
mohammad2050
źródło
źródło
IDENTITY
kolumna, a możeDATETIME
kolumna, która określa, jakie są wiersze „pierwszy” i „ostatni”?Odpowiedzi:
Byłeś blisko -
FIRST
iLAST
jesteś z Access; w SQL Server (począwszy od SQL Server 2012) sąFIRST_VALUE()
iLAST_VALUE()
.Jeśli więc masz rok 2012 lub lepszy (lub Azure SQL Database), oto jeden ze sposobów na uzyskanie odpowiedzi:
źródło
Jeszcze jeden sposób (który działa również w starszych wersjach):
źródło
Oto jeden ze sposobów, w jaki możesz to zrobić:
Chodzi tutaj o zdefiniowanie „pierwszego” i „ostatniego” wiersza. Po ich zdefiniowaniu możesz po prostu wykonać odejmowanie.
źródło
Dlaczego nie użyć funkcji MAX i MIN (opcjonalnie, jeśli masz Kryteria użyj Gdzie)
Na przykład. Wybierz (Max (NumFieldName) - Min (NumFieldName)) AS Output FROM TableName
źródło
Value
kolumna zawsze rośnie. Jednak kolumna tożsamości to.