Gå till huvudinnehåll Gå till ytterligare innehåll

Rank - diagramfunktion

Rank() utvärderar raderna i diagrammet i uttrycket, och visar för varje rad den relativa placeringen av dimensionsvärdet utvärderat i uttrycket. Funktionen utvärderar uttrycket, jämför resultatet med resultaten på de andra raderna som innehåller det aktuella kolumnsegmentet och returnerar rangordningsnumret för den aktuella raden inom segmentet.

För andra diagram än tabeller definieras det aktuella kolumnsegmentet som det visas i diagrammets raka tabellmotsvarighet.

Syntax:  

Rank([TOTAL expr[, mode[, fmt]])

Returnerad datatyp: dual

Argument:  

  • expr: Det uttryck eller fält som innehåller de data som ska mätas.
  • mode: Anger resultatets talrepresentation.
  • fmt: Anger resultatets textrepresentation.
  • TOTAL: Om diagrammet är endimensionellt eller om uttrycket föregås av kvalificeraren TOTAL utvärderas funktionen över hela kolumnen. Om tabellen eller diagrammets tabellmotsvarighet har flera vertikala dimensioner, inbegriper det aktuella kolumnsegmentet endast rader som har samma värden som den aktuella raden i samtliga dimensionskolumner utom den kolumn som visar den sista dimensionen i fältens inbördes sorteringsordning.

    Definiera aggregeringens omfattning

Rangordningen returneras som ett dualt värde, som i det fall där varje rad har en unik rangordning är ett heltal mellan 1 och antalet rader i det aktuella kolumnsegmentet.

Om flera rader har samma rangordningsnummer, kan text- och talrepresentationerna för gruppen kontrolleras med parametrarna mode och fmt.

mode

Det andra argumentet, mode, kan ta följande värden:

Värden för andra argumentet
Värde Beskrivning
0 (standard)

Om alla rangordningsnummer inom gruppen är lägre än det mellersta värdet i den totala rangordningen, får alla rader i gruppen det lägsta rangordningsnumret inom gruppen.

Om alla rangordningsnummer inom gruppen är högre än det mellersta värdet i den totala rangordningen, får alla rader i gruppen det högsta rangordningsnumret inom gruppen.

Om rangordningsnumren inom gruppen spänner över det mellersta värdet i den totala rangordningen, får alla rader i gruppen ett värde som motsvarar medelvärdet av det högsta och det lägsta rangordningsnumret i hela kolumnsegmentet.

1 Lägsta rangordningstalet ges åt alla rader.
2 Medelvärdet ges som rangordningstal åt alla rader.
3 Högsta rangordningstalet ges åt alla rader.
4 Lägsta rangordningstalet på första raden, därefter ökning med ett för varje rad
fmt

Det tredje argumentet, fmt, kan ta följande värden:

Värden för tredje argumentet
Värde Beskrivning
0 (standard) Lägsta värdet - högsta värdet på alla rader (exempelvis 3 - 4).
1 Lägsta värdet på alla rader.
2 Lägsta värdet på första raden, tom sträng på övriga rader.

Ordningen på rader inom mode 4 och fmt2 bestäms av sorteringsordningen som angivits för dimensionerna i diagrammet.

Exempel och resultat:  

Skapa två diagram från dimensionerna Product och Sales och ett annat från Product och UnitSales. Lägg till mått på det sätt som visas i nedanstående tabell.

Exempel 1:  

Skapa en tabell med dimensionerna Customer och Sales och måttet Rank(Sales).

Resultatet beror på dimensionernas sorteringsordning. Om tabellen sorteras efter Customer listar tabellen alla värden för Sales för Astrida, sedan Betacab och så vidare. Resultaten för Rank(Sales) kommer att visa 10 för Sales-värdet 12, 9 för Sales-värdet 13, och så vidare, med rangordningsvärdet 1 returnerat för Sales-värdet 78. Nästa kolumnsegment börjar med Betacab, för vilket det första värdet Sales i segmentet är 12. Rangordningsvärdet Rank(Sales) för detta ges som 11.

Om tabellen sorteras efter Sales består kolumnsegmenten av värdena för Sales och motsvarande Customer. Eftersom det finns två Sales-värden 12 (för Astrida och Betacab), är Rank(Sales)-värdet för det kolumnsegmentet 1-2 för varje Customer-värde. Detta beror på att det finns två värden för Customer för Sales-värdet 12. Om det hade funnits 4 värden skulle resultatet blivit 1–4 för alla rader. Detta visar hur resultatet ser ut för standardvärdet (0) för argumentet fmt.

Exempel 2:  

Ersätt kunddimensionen med produktdimensionen och lägg till måttet Rank(Sales,1,2).

Detta returnerar 1 på den första raden för varje kolumnsegment och lämnar alla andra rader tomma eftersom argumenten mode och fmt är inställda på 1 respektive 2.

 

Data som används i exempel:

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|0|25

Canutility|AA|8|15

Canutility|CC|0|19

] (delimiter is '|');

 

Sales2013:

crosstable (Month, Sales) LOAD * inline [

Customer|Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec

Astrida|46|60|70|13|78|20|45|65|78|12|78|22

Betacab|65|56|22|79|12|56|45|24|32|78|55|15

Canutility|77|68|34|91|24|68|57|36|44|90|67|27

Divadip|57|36|44|90|67|27|57|68|47|90|80|94

] (delimiter is '|');

 

Mer information

 

Var den här sidan till hjälp för dig?

Om du hittar några fel på denna sida eller i innehållet – ett stavfel, ett steg som saknas eller ett tekniskt fel – berätta för oss så att vi kan blir bättre!

Gå med i programmet Analytics Modernization

Remove banner from view

Modernisera utan att kompromissa med dina värdefulla QlikView-appar med programmet för analysmodernisering. Klicka här för mer information eller ta kontakt: ampquestions@qlik.com