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 [<fld {, fld}>]] expr[, mode[, fmt]])

Datatyp som returneras: dual

Argument:  

Argument Beskrivning
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.

Bestämningen TOTAL kan följas av en lista med ett eller flera fältnamn inom vinkelparenteser <fld>. Dessa fältnamn bör ingå i en underuppsättning av diagrammets dimensionsvariabler.

​Se: 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ä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ä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 Resultat

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) visar 10 för Sales-värdet 12, 9 för Sales-värdet 13, och så vidare, och rangordningsvärdet 1 returnerats för Sales-värdet 78. Nästa kolumnsegment inleds med Betacab, där det första värdet för Sales i segmentet är 12. Rangordningsvärdet för 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.

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 '|');

 

Hjälpte den här informationen?

Tack för att du berättar det här. Är det något du vill säga om det här avsnittet?

Varför var informationen inte till hjälp och hur kan vi förbättra den?