Zu Hauptinhalt springen

FirstSortedValue - Skriptfunktion

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.

The sorted values are iterated over a number of records, as defined by a group by clause, or aggregated across the full data set if no group by clause is defined.

Syntax:  

FirstSortedValue ([ distinct ] value, sort-weight [, rank ])

Rückgabe Datentyp: dual

Argumente:  

FirstSortedValue-Argumente
Argument Beschreibung
value Expression Die Funktion findet den Wert der Formel value, der dem Ergebnis der Sortierung von sort_weight entspricht.
sort-weight Expression 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 Expression

Durch rank "n" größer 1 wird der n-te Wert ausgegeben.

distinct

Der Zusatz DISTINCT vor den Funktionsargumenten bewirkt, dass bei der Auswertung der Funktion entstehende Dubletten nicht berücksichtigt werden.

Beispiele und Ergebnisse:  

Fügen Sie Ihrem Dokument das Beispielskript hinzu und führen Sie sie aus. Fügen Sie einem Arbeitsblatt in unserem Dokument dann mindestens diejenigen Felder hinzu, die in der Ergebnisspalte aufgeführt sind, um das Ergebnis anzuzeigen.

Beispiel 1:  

Temp:

LOAD * inline [

Customer|Product|OrderNumber|UnitSales|CustomerID

Astrida|AA|1|10|1

Astrida|AA|7|18|1

Astrida|BB|4|9|1

Astrida|CC|6|2|1

Betacab|AA|5|4|2

Betacab|BB|2|5|2

Betacab|DD|12|25|2

Canutility|AA|3|8|3

Canutility|CC|13|19|3

Divadip|AA|9|16|4

Divadip|AA|10|16|4

Divadip|DD|11|10|4

] (delimiter is '|');

 

FirstSortedValue:

LOAD Customer,FirstSortedValue(Product, UnitSales) as MyProductWithSmallestOrderByCustomer Resident Temp Group By Customer;

 

Beispiel 1 – Ergebnisse
Ergebnisfeld (Kunde) Ergebniswert (MyProductWithSmallestOrderByCustomer)
Astrida CC
Betacab AA
Canutility AA
Divadip DD

Die Funktion sortiert UnitSales von klein nach groß, auf der Suche nach dem Customer-Wert mit dem kleinsten UnitSales-Wert, der kleinsten Bestellung.

Da sich CC auf die kleinste Bestellung bezieht (UnitSales= 2) für Kunde Astrida. AA entspricht der kleinsten Bestellung (4) für Kunde Betacab, AA entspricht der kleinsten Bestellung (8) für Kunde Canutility und DD der kleinsten Bestellung (10) für Kunde Divadip.

Beispiel 2:  

Vorgabe: Die Tabelle Temp wird wie im vorherigen Beispiel geladen:

LOAD Customer,FirstSortedValue(Product, -UnitSales) as MyProductWithLargestOrderByCustomer Resident Temp Group By Customer;

 

Beispiel 2 – Ergebnisse
Ergebnisfeld (Kunde) Ergebniswert (MyProductWithLargestOrderByCustomer)
Astrida AA
Betacab DD
Canutility CC
Divadip -

Dem sort_weight-Argument geht ein Minuszeichen voran, weshalb die Funktion zuerst die größten Werte sortiert.

Da AA der größten Bestellung (Wert von UnitSales:18) für Kunde Astrida, DD der größten Bestellung (12) für Kunde Betacab und CC der größten Bestellung (13) für Kunde Canutility entspricht. Für die größte Bestellung (16) für Kunde Divadip gibt es zwei identische Werte, weshalb NULL ausgegeben wird.

Beispiel 3:  

Vorgabe: Die Tabelle Temp wird wie im vorherigen Beispiel geladen:

LOAD Customer,FirstSortedValue(distinct Product, -UnitSales) as MyProductWithSmallestOrderByCustomer Resident Temp Group By Customer;

 

Beispiel 3 – Ergebnisse
Ergebnisfeld (Kunde) Ergebniswert (MyProductWithLargestOrderByCustomer)
Astrida AA
Betacab DD
Canutility CC
Divadip AA

Dies entspricht dem vorigen Beispiel, außer dass der distinct-Zusatz verwendet wird. Das führt zu einer Ignorierung des duplizierten Ergebnisses für Divadip, wodurch ein Wert, der nicht gleich NULL ist, ausgegeben wird.

Hat diese Seite Ihnen geholfen?

Wenn Sie Probleme mit dieser Seite oder ihren Inhalten feststellen – einen Tippfehler, einen fehlenden Schritt oder einen technischen Fehler –, teilen Sie uns bitte mit, wie wir uns verbessern können!

Nehmen Sie am Analyse-Modernisierungsprogramm teil

Remove banner from view

Modernisieren Sie mit dem Analyse-Modernisierungsprogramm, ohne Ihre wertvollen QlikView-Apps zu gefährden. Klicken Sie hier für weitere Informationen oder kontaktieren Sie uns: ampquestions@qlik.com