IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SSAS Discussion :

Fonction DENSE_RANK en MDX?


Sujet :

SSAS

  1. #1
    Membre chevronné Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Points : 2 145
    Points
    2 145
    Par défaut Fonction DENSE_RANK en MDX?
    Bonjour à tous,
    Je n'ai pas retrouvé de trace de la question et pas vraiment de réponse sur internet.
    Je cherche à calculer un rang de mes attributs selon une mesure, mais je ne trouve pas comment faire un calcul de DENSE_RANK.
    Évidement la fonction ne semble pas exister...

    Est-ce que vous auriez une idée de contournement ?

  2. #2
    Membre émérite Avatar de FrancoisJehl
    Homme Profil pro
    BI Engineer
    Inscrit en
    Juillet 2009
    Messages
    1 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : BI Engineer
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 485
    Points : 2 883
    Points
    2 883
    Par défaut
    On peut faire une cradinguerie en MDX récursif:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
     
    WITH 
    MEMBER [Measures].[Rank]
    AS
    Rank
    (
    	[Product].[Model Name].CurrentMember,
    	[Product].[Model Name].[Model Name],
    	[Measures].[Order Count]
    )
     
    SET [Sorted Models]
    AS
    Order
    (
    	[Product].[Model Name].[Model Name]
    	,[Measures].[Order Count]
    	,BDESC
    )
     
    MEMBER [Measures].[Previous Model Index]
    AS
    (
    	Rank
    	(
    		[Product].[Model Name].CurrentMember,
    		[Sorted Models]
    	)
    	-
    	2
    )
     
    MEMBER [Measures].[Dense Rank]
    AS
    Case
    	When [Measures].[Rank] = 1
    	Then 1
    	Else
    	(
    		[Sorted Models].Item([Measures].[Previous Model Index]),
    		[Measures].[Dense Rank]
    	)
    	+
    	Iif
    	(
    		(
    			[Sorted Models].Item([Measures].[Previous Model Index]),
    			[Measures].[Order Count]
    		) 
    		= 
    		[Measures].[Order Count]
    		,0
    		,1
    	)
    End
     
    SELECT
    {
    	[Measures].[Rank],
    	[Measures].[Dense Rank]
    } 
    ON 0,
    { 
    	[Sorted Models]
    }
    ON 1
    FROM [Adventure Works]
    Je m'étais déjà posé la question, je ferai un post là dessus à l'occase si j'ai le temps.

  3. #3
    Membre chevronné Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Points : 2 145
    Points
    2 145
    Par défaut
    Pas mal comme torture de l'esprit, mais je suppose que sur un cube dont la table de faits a plus de 34 millions de lignes, je suis mort ?

    Je vais essayer tout de même pour le sport

  4. #4
    Membre émérite Avatar de FrancoisJehl
    Homme Profil pro
    BI Engineer
    Inscrit en
    Juillet 2009
    Messages
    1 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : BI Engineer
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 485
    Points : 2 883
    Points
    2 883
    Par défaut
    Bah sinon il te reste une UDF en .NET...

Discussions similaires

  1. [Cognos 8.2] fonctions MDX sur modèle DMR
    Par yphilogene dans le forum Cognos
    Réponses: 7
    Dernier message: 22/04/2008, 22h46
  2. [MDX] Fonction Topcount
    Par Reskibil dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 28/11/2007, 12h35
  3. MDX fonction sur chaine de caractères (concat(),Substring())
    Par YagamiRaito dans le forum Mondrian
    Réponses: 2
    Dernier message: 16/08/2007, 18h16
  4. (MDX) Fonction COALESCEEMPTY
    Par Reskibil dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 11/07/2007, 12h25
  5. Question MDX avec la fonction Iif
    Par toc2000 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 29/11/2006, 22h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo