Ich versuche eine Ansicht zu erstellen. Ich habe einige Daten in meiner SQL Server-Datenbank und möchte sie nach ihrem mark1
und sortieren mark2
. Wenn ich sie jetzt sortiere, möchte ich diejenige auswählen mark1
, die die niedrigste hat, mark2
und berechnen, was die Abweichung von anderen mark1
s ist. Die Tabelle sieht jetzt so aus, aber ohne Abweichung.
| mark1 | mark2 | mass || deviation |
|:-----------|------------:|:------------:||:------------:|
| 0001 | 10000 | 10,0 || min0001 |
| 0001 | 15000 | 12,0 || +20% |
| 0002 | 11200 | 18,0 || min0002 |
| 0002 | 13000 | 35,5 || +97.2% |
| 0002 | 14565 | 85,5 || 375% |
| 0003 | 15004 | 15,4 || min0003 |
| 0003 | 21250 | 17,4 || +12.9% |
| 0003 | 60764 | 16,4 || 6.49% |
Und jetzt, wie Sie sehen, ist es von mark1
und bestellt mark2
. Nun, mein Problem ist die Abweichungsspalte, ich muss sie nehmen mark1
, sagen wir 0001
(sein mark2
ist 10000
) und die niedrigste Masse finden und die Abweichung von anderen finden 0001
( 15000
). Wie Sie in der Tabelle sehen können.
sql-server
sql-server-2014
Flosse
quelle
quelle
Antworten:
FIRST_VALUE (Transact-SQL)
Partition auf
mark1
und bestellen nachmark2
.So etwas sollte es für Sie tun:
SQL Fiddle
quelle
Ich denke, diese Abfrage wird die Ergebnisse geben:
quelle