Lire en anglais

Partager via


ROWNUMBER

S’applique à :Colonne calculéeTable calculéeMesureCalcul de visuel

Retourne le classement unique du contexte actuel dans la partition spécifiée triée selon l’ordre spécifié. Si une correspondance est introuvable, le numéro de ligne est vide.

Syntaxe

DAX
ROWNUMBER ( [<relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )

Paramètres

Terme Définition
relation (Facultatif) Expression de table à partir de laquelle la ligne de sortie est retournée
Si spécifié, toutes les colonnes de orderBy et partitionBy doivent provenir de celle-ci.
s’il est omis :
- orderBy doit être spécifié explicitement.
- Toutes les colonnes orderBy et partitionBy doivent être complètes et proviennent d’une table unique.
: est défini par défaut sur ALLSELECTED() de toutes les colonnes dans orderBy et partitionBy.
axis (Facultatif) Axe de la forme du visuel. Disponible uniquement dans les calculs visuels et remplace relation.
orderBy (Facultatif) Clause ORDERBY() contenant les colonnes qui définissent le tri de chaque partition.
s’il est omis :
- relation doit être spécifié explicitement.
: la commande par défaut par chaque colonne de relation qui n’est pas déjà spécifiée dans partitionBy.
blanks (Facultatif) Énumération qui définit comment gérer des valeurs vides lors du tri.
Les valeurs prises en charge sont :
  • DEFAULT (la valeur par défaut), où le comportement pour les valeurs numériques est que les valeurs vides sont classées entre les valeurs zéro et les valeurs négatives. Le comportement des chaînes est que les valeurs vides sont triées avant toutes les chaînes, y compris les chaînes vides.
  • FIRST, les valeurs vides sont toujours classées au début, que l’ordre de tri soit croissant ou décroissant.
  • LAST, les valeurs vides sont toujours classées à la fin, que l’ordre de tri soit croissant ou décroissant.

Remarque, lorsque blanks paramètre et les espaces dans la fonction ORDERBY() sur une expression individuelle sont tous deux spécifiés, blanks sur l’expression orderBy individuelle prend la priorité pour l’expression orderBy appropriée, et les expressions orderBy sans blanks être spécifiées respecteront blanks paramètre sur la fonction Window parente.
partitionBy (Facultatif) Clause PARTITIONBY() contenant les colonnes qui définissent la façon dont relation est partitionnée.
En cas d’omission, relation est traitée comme une partition unique.
matchBy (Facultatif) Clause MATCHBY() contenant les colonnes qui définissent la manière de faire correspondre les données et d’identifier la ligne actuelle.
reset (Facultatif) Disponible seulement dans les calculs de visuel. Indique si le calcul est réinitialisé et à quel niveau de la hiérarchie des colonnes de la forme du visuel. Les valeurs acceptées sont : NONE, LOWESTPARENT, HIGHESTPARENT ou un entier. Le comportement dépend du signe de l’entier :
- S’il est égal à zéro ou s’il est omis, le calcul n’est pas réinitialisé. Équivalent à NONE.
- S’il est positif, l’entier identifie la colonne en commençant par la plus élevée, indépendamment du fragment. HIGHESTPARENT équivaut à 1.
- S’il est négatif, l’entier identifie la colonne en commençant par la plus basse, par rapport au fragment actuel. LOWESTPARENT équivaut à -1.

Valeur retournée

Numéro rownumber du contexte actuel.

Notes

Chaque orderBy, partitionByet colonne matchBy doivent avoir une valeur externe correspondante pour vous aider à définir la ligne actuelle sur laquelle fonctionner, avec le comportement suivant :

  • S’il existe exactement une colonne externe correspondante, sa valeur est utilisée.
  • S’il n’existe aucune colonne externe correspondante, alors :
    • ROWNUMBER détermine d’abord toutes les colonnes orderBy, partitionByet matchBy qui n’ont aucune colonne externe correspondante.
    • Pour chaque combinaison de valeurs existantes pour ces colonnes dans le contexte parent de ROWNUMBER, ROWNUMBER est évalué, et une ligne est retournée.
    • La sortie finale de ROWNUMBER est une union de ces lignes.
  • S’il existe plusieurs colonnes externes correspondantes, une erreur est retournée.

Si matchBy est présent, ROWNUMBER essaie d’utiliser des colonnes dans matchBy et partitionBy pour idenfity de la ligne actuelle.
Si les colonnes spécifiées dans orderBy et partitionBy ne peuvent pas identifier de manière unique chaque ligne dans relation, puis :

  • ROWNUMBER essaie de trouver le moins de colonnes supplémentaires requises pour identifier chaque ligne de manière unique.
  • Si de telles colonnes sont disponibles, ROWNUMBER
    • Essaie de trouver le moins de colonnes supplémentaires requises pour identifier chaque ligne de manière unique.
    • Ajoutez automatiquement ces nouvelles colonnes à orderBy clause.
    • Trie chaque partition à l’aide de ce nouvel ensemble de colonnes orderBy.
  • Si ces colonnes sont introuvables et que la fonction détecte une égalité au moment de l’exécution, une erreur est retournée.

reset peuvent être utilisés uniquement dans les calculs visuels et ne peuvent pas être utilisés en combinaison avec orderBy ou partitionBy. Si reset est présente, axis peut être spécifié, mais relation ne peut pas le faire.

Exemple 1 : colonne calculée

La requête DAX suivante :

DAX
EVALUATE
ADDCOLUMNS(
    'DimGeography',
    "UniqueRank",
    ROWNUMBER(
    	'DimGeography',
    	ORDERBY(
    		'DimGeography'[StateProvinceName], desc,
    		'DimGeography'[City], asc),
    	PARTITIONBY(
    		'DimGeography'[EnglishCountryRegionName])))
ORDER BY [EnglishCountryRegionName] asc, [StateProvinceName] desc, [City] asc

Renvoie une table qui classe de manière unique chaque zone géographique avec le même EnglishCountryRegionName, par StateProvinceName et City.

Exemple 2 : calcul de visuel

Les requêtes DAX de calcul de visuel suivantes :

DAX
SalesRankWithinYear = ROWNUMBER(ORDERBY([SalesAmount], DESC), PARTITIONBY([CalendarYear]))

SalesRankAllHistory = ROWNUMBER(ORDERBY([SalesAmount], DESC))

Créent deux colonnes qui classent de manière unique chaque mois par total des ventes, une pour chaque année l’autre dans tout l’historique.

La capture d’écran ci-dessous montre la matrice du visuel et l’expression du premier calcul de visuel :

Calcul visuel DAX

INDEX
ORDERBY
PARTITIONBY
WINDOW
RANK