FirstSortedValue
FirstSortedValue() gibt den Wert der in value festgelegten Formel zurück, der dem Ergebnis der Sortierung des sort_weight-Arguments entspricht, unter Berücksichtigung, falls angegeben, der Funktion rank. Weist mehr als ein Ergebnis dasselbe Feld sort_weight für die festgelegte Funktion rank auf, gibt die Funktion NULL zurück.
Syntax:
FirstSortedValue([{SetExpression}] [DISTINCT] [TOTAL [<fld {,fld}>]] value, sort_weight [,rank])
Rückgabe Datentyp: dual
Argumente:
- value: Output-Feld. Die Funktion findet den Wert der Formel value, der dem Ergebnis der Sortierung von sort_weight entspricht.
- sort_weight: Input-Feld. Die Formel mit den Daten, die sortiert werden sollen. Der erste (niedrigste) Wert von sort_weight wird gefunden, aus dem der entsprechende Wert der Formel value bestimmt wird. Wenn Sie ein Minuszeichen vor sort_weight voranstellen, liefert die Funktion stattdessen den letzten (höchsten) sortierten Wert.
- rank: Durch rank "n" größer 1 wird der n-te Wert ausgegeben.
- SetExpression: Standardmäßig berechnet sich die Aggregierungsfunktion über alle wählbaren Werte. Alternativ können Sie die der Berechnung zugrunde liegenden Werte über die Auswahlformel bestimmen.
- DISTINCT: Der Zusatz DISTINCT vor den Funktionsargumenten bewirkt, dass bei der Auswertung der Funktion entstehende Dubletten nicht berücksichtigt werden.
- TOTAL: Der Zusatz TOTAL vor der Funktion bewirkt, dass die Berechnung über alle ausgewählten bzw. wählbaren Werte erfolgt, und nicht nur über diejenigen, die zu dem Wert der aktuellen Dimension zählen, die Dimensionen des Diagramms werden also nicht berücksichtigt. Auf den Zusatz TOTAL kann eine Reihe von Feldnamen in spitzen Klammern folgen <fld>. Sind dies Dimensionen des Diagramms, werden bei der Berechnung
Beispiele:
Beispiel | Ergebnis |
---|---|
firstsortedvalue (Product, UnitPrice) |
BB, da es das Product mit dem niedrigsten UnitPrice (9) ist. |
firstsortedvalue (Product, UnitPrice, 2) |
BB, da es das Product mit dem zweitniedrigsten UnitPrice (10) ist. |
firstsortedvalue (Customer, -UnitPrice, 2) |
Betacab, da es der Customer mit dem Product ist, das den zweithöchsten UnitPrice (20) aufweist. |
firstsortedvalue (Customer, UnitPrice, 3) |
NULL, da zwei Werte von Customer (Astrida und Canutility) mit demselben rank (drittniedrigster) UnitPrice(15) vorliegen. Verwenden Sie den Zusatz distinct, um sicherzustellen, dass keine unerwarteten NULL-Ergebnisse auftreten. |
firstsortedvalue (Customer, -UnitPrice*UnitSales, 2) |
Canutility, da dies der Customer mit dem zweithöchsten Bestellwert ist: UnitPrice multipliziert mit UnitSales (120). |
In Beispielen verwendete Daten:
ProductData:
LOAD * inline [
Customer|Product|UnitSales|UnitPrice
Astrida|AA|4|16
Astrida|AA|10|15
Astrida|BB|9|9
Betacab|BB|5|10
Betacab|CC|2|20
Betacab|DD||25
Canutility|AA|8|15
Canutility|CC||19
] (delimiter is '|');
Customer | Product | UnitSales | UnitPrice |
---|---|---|---|
Astrida | AA | 4 | 16 |
Astrida | AA | 10 | 15 |
Astrida | BB | 9 | 9 |
Betacab | BB | 5 | 10 |
Betacab | CC | 2 | 20 |
Betacab | DD | - | 25 |
Canutility | AA | 8 | 15 |
Canutility | CC | - | 19 |