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

MS SQL Server Discussion :

MDX


Sujet :

MS SQL Server

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 58
    Points : 44
    Points
    44
    Par défaut [Résolu] MDX
    Voilà mon pb :

    j'ai dans 4 cubes différents un même menbre EMAIL. J'ai 1 cube virtuel qui repose repose sur ces cubes. EMAIL est l'adresse email (text), et non un nombre d'email.

    Je voudrais faire la somme "distincte" du nombre de ces emails (et ne pas compter ceux en double, c'est à dire les adresses présentes dans plusieurs cubes). Cette somme "distincte" est un membre calculé de mon cube virtuel ...

    Je n'ai aucune piste ...

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 51
    Points : 93
    Points
    93
    Par défaut
    Citation Envoyé par Guizz
    j'ai dans 4 cubes différents un même menbre EMAIL
    pardon, mais je ne comprends pas bien.
    Tu veux dire que le champ EMAIL est un des niveaux d'une dimension partagée, utilisée dans chacun des 4 cubes (et si oui quelle dimension)?
    ou c'est complètement autre chose?

    un exemple de niveau : Mois (de la dimension Temps)
    un exemple de membre : janvier

    donnes plus de précision concernant les dimensions partagées utilisées dans ton cube virtuel (puisque c'est dans celuià que tu veux le nombre d'email non?)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 58
    Points : 44
    Points
    44
    Par défaut
    non, email est une "mesure" présente dans chaque cube; en fait c'est plus un champs informatif qu'autre chose ... parceque ce que je compte ce sont des clics, des ouvertures mais il ne faut pas que je perde l'email, qui sert en fait d'identifiant unique ... (mais qui ne fait pas parti de ma clé primaire dans ma table de fait) ...

    Desfois je me dis que je dois vraiment pas être clair ...

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 51
    Points : 93
    Points
    93
    Par défaut
    Tu places un champ texte en mesure? vraiment bizarre
    si c'est le cas, tu peux utiliser la fonction d'agrégat "distinct count" à modifier dans propriétés/Aggreggate Function

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 58
    Points : 44
    Points
    44
    Par défaut
    C'est ce que j'ai essayé mais je n'est pas distinct count de présent ... (count, min, max, sum) ...

    pour email, en fait je ne sais pas comment te le dire, ce n'est en fait ni une mesure, ni un menbre ... juste une ibnfo que je conserve

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 51
    Points : 93
    Points
    93
    Par défaut
    d'acccord, mais tu la conserves sous quelle forme :
    "propriétés de membre" d'un niveau, autre,...? parceque la solution risque vachement de dépendre de ça.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 58
    Points : 44
    Points
    44
    Par défaut
    Tes questions me permettent moi même d'avancer ... l'email n'est pas stocké au niveau du cube, mais dans la table de faits ... ce que je voudrais de présent dans le cube, c'est le nombre d'email distincts par table de faits, sachant que j'ai une table de faits pour chacunde mes 4 cubes ...

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 51
    Points : 93
    Points
    93
    Par défaut
    si tu veux le nombre d'emails distincts par table de faits, pourquoi ne pas rajouter un champ "présence" dans chacune des tables ?
    Pour chaque ligne,tu le mets à 1 si l'email est unique et 0 si tu l'as déja.
    Ensuite, tu n'as plus qu'a sommer au sein du cube.

    et si tu veux pour l'ensemble de tes cubes, tu reprends le principe en vérifiant la présence/absence de doublons dans les autres tables.

    Ce sera peut-être plus simple,non?

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 58
    Points : 44
    Points
    44
    Par défaut
    C'est pas con ... 8) mais il me reste un problème: le nombre total d'emails envoyés c'est la somme des emails distincts des 4 tables de faits.

    (Si mes tables de faits sont T1 .... T4) :

    Les emails distincts de T1 sont un sous ensemble de T2 ... d'ou un problème de doublons. Les emails distincts de {T3,T4} sont indépendants, de même que ceux des sur ensembles {T1,T3,T4} & {T2,T3,T4} ... par contre l'intersection des emails distincts de {T1,T2} n'est pas vide ...

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 58
    Points : 44
    Points
    44
    Par défaut
    Le problème de la méthode précedente, c'est que le compte des emails doit se faire sur les dimensions communes du cube virtuel ... ce qui veut dire que dans mes tables de faits j'ai des dimensions qui ne seront pas prises en compte d'où une hétérogénéité des données dans le cube ...

    Comment marche un cube virtuel ? est ce qu'il agrège au niveau "tous" toutes les dimensions non présentes ?

    J'ai quand même l'impression que la solution passe par le MDX et le distinct count, mais je n'arrive pas à comprendre la syntaxe, particulièrement les "sets" ...

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 58
    Points : 44
    Points
    44
    Par défaut
    par exemple qu'est qui n'est pas bon là dedans:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DISTINCTCOUNT("dbo"."TABLE_FAITS_CIBLES_CLICS"."EMAIL")

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 51
    Points : 93
    Points
    93
    Par défaut
    Citation Envoyé par Guizz
    par exemple qu'est qui n'est pas bon là dedans:

    Code:
    DISTINCTCOUNT("dbo"."TABLE_FAITS_CIBLES_CLICS"."EMAIL")
    regarde la syntaxe de la fonction MDX.
    DistinctCount nécessite un jeu de données (Set) en paramètre. Toi, tu lui donnes une mesure ! définis un jeu (regarde les fonctions qui renvoient Set, c'est facile c'est classé).

    mais là tu crées un membre calculé. Comme je te l'ai dit , il est à mon avis plus simple de définir une mesure.

    Concernant les cubes virtuels, tu ne peux avoir en commun que les dimensions conformes (ou partagées) mais je ne vois pas où est le pb?
    les dimensions non-prises en compte correspondent (logiquement) à celles pour lesquelles la comparaison de tes cubes n'a pas de sens.

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 58
    Points : 44
    Points
    44
    Par défaut
    ok pour les mesures; cependant, je vais avoir des données incohérentes dans mes tables de faits:
    ex:

    FAIT_CLICS
    --------------
    cibleid --> id de la cible du mail
    campaignid --> id de la mailist
    segementid --> id du segment de la cible
    tempsid --> id temps
    mesure1 --> nombre de clics
    mesure2 --> email distinct

    tempsid n'est pas une dimension de mon cube virtuel; donc par exemple, je pourrais avoir les données suivantes:

    15,12,10,1,12,1
    15,12,10,2,3,0
    15,12,10,3,15,0

    ce qui introduit de l'incohérence non ? 1 email unique devrais aussi l'être par unité de temps (tempsid est menbre de la clé) mais si je fais ça, quand je vais "sommer" les mesures dans le cube virtuel, j'aurai plusieures fois l'email unique par {cibleid,campaignid,segementid} ...

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 51
    Points : 93
    Points
    93
    Par défaut
    la véritable question devient maintenant :
    pourquoi la dimension Temps n'est-elle pas partagée?
    je suppose que ton identifiant temps pointe vers une table de dimension indépendante des tables de faits. Pourquoi n'est-elle pas conforme?

    P.S et svp, après on s'arrête

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 58
    Points : 44
    Points
    44
    Par défaut
    Concernant la dim temps, elle est bien partagée; le pb, c'est qu'un email distinct par unité de temps ne veut rien dire. Cet email doit être distinct seulement par campagne ... si j'ai 3 clics d'une même cible à trois moments différents pour la même campagne, j'ai 1 seul email distinct. Or ça ne veut pas dire grand chose de mettre dans la table de faits clics '1' pour un des trois clics et '0' pour les deux autres ...

    Bon merci quand même ... je sais que c'est pas trés clair ... et dis moi quand tu prends tes vacances pour que je m'arrange à les prendre en même temps

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 51
    Points : 93
    Points
    93
    Par défaut
    ultime recommandation :
    peut-être, dans ton cas, faut-il distinguer l'analyse des clics de l'analyse du nombre de mails (cubes distincts) puisqu'apparement il n'y a pas de lien logique. Demande toi ce que représente une ligne de ta table de fait (quel évenement),...
    Je ne saurais trop te conseiller (ainsi qu'a tous ceux que le concept OLAP intéresse) la lecture des ouvrages de R.Kimball :

    ”Concevoir et déployer un data warehouse”, Eyrolles, 2000

    ”Entrepôts de données”, International Thomson publishing, 1997

    Voilà, sinon, pour les vacances, eh bien, je sais pas encore si j'en aurais!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. creation d'un index mdx
    Par etienne.bo dans le forum Bases de données
    Réponses: 5
    Dernier message: 03/07/2006, 11h28
  2. Aide création requette MDX
    Par Tankian dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 23/05/2006, 17h23
  3. Comment faire du MDX à partir d'une requete SQL?
    Par Immobilis dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 10/11/2005, 09h46
  4. OWC, Pivot table, AddCalculatedField et MDX
    Par Immobilis dans le forum ASP
    Réponses: 2
    Dernier message: 25/10/2005, 22h12
  5. MDX ?!?
    Par Guizz dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 13/06/2003, 10h12

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