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

Langage SQL Discussion :

Structure requete Matrice en fonction de 2 valeurs


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Juin 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2017
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Structure requete Matrice en fonction de 2 valeurs
    Bonjour,

    Alors voila je vais essayer de vous expliquer mon problème.

    J'ai créer une table, avec un individu par ligne. C'est une table qui va me servir à étudier les réaction email des utilisateurs

    Dans cet table 3 colonnes m'intéresse:

    - taux d'ouverture (taux_ouv)
    - Nombre d'email envoyé (nb_mail)
    - Nombre de thematique differentes (nb_theme)

    Je cherche à construire une sorte de matrice donnant la moyenne des taux d'ouverture en fonction du nombre d'email envoyés (ligne) et du nombre de thématique (colonne).

    Par exemple, dans la case 5;2 de la matrice on aurait la moyenne de tout les individus ayant reçu 5 mails portant sur 2 thematique differente.

    Ca fait des heures que j'essaye de jongler avec des group by, des where , ect... mais je bloque .

    Je sais pas trop quelle structure devrait avoir ma requete. Avez vous des pistes ?

    Merci d'avance

  2. #2
    Expert éminent sénior

    Avatar de FirePrawn
    Homme Profil pro
    Consultant technique
    Inscrit en
    Mars 2011
    Messages
    3 179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant technique

    Informations forums :
    Inscription : Mars 2011
    Messages : 3 179
    Points : 19 373
    Points
    19 373
    Par défaut
    Hello,

    Tu pourrais schématiser ta table plutôt ?
    Je trouve que c'est un peu confus là ta demande (mais c'est peut-être moi qui suis une buse).

    Comme ça, je dirais de sortir la moyenne de ta colonne taux d'ouverture avec un group by sur le nb_email ; le tout avec une condition sur les thématiques.
    Avant toute chose : lire le mode d'emploi du forum et ses règles.
    Je ne réponds pas aux questions techniques en MP.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Juin 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2017
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Hello FirePrawn,

    En fait m'a table c'est un truc du style :
    ID Taux ouverture email nombre email envoyé nombre de thematique differente
    1 0.25 5 4
    2 0.30 6 2
    3 0.15 10 3
    4 0.50 8 1



    Tu vois ?

    Par exemple un individu peut avoir reçu 5 email, ouvert 1 email (donc taux d'ouverture=20%) et ces 5 emails portés sur 2 thematique/categorie differentes (exemple 3 email de promotion et 2 email de mot de passe oublier donc 5 email et 2 thematique)

    Mon but c'est de faire un tableau des moyenne du taux ouverture selon nb_mail (en ligne) et nb_theme (en colonne) :

    Nbr_mail 1theme 2 theme 3 theme 4 theme 5 theme
    1 mail % X X X X
    2 mail % % X X X
    3 mail % % % X X
    4 mail % % % % X
    5 mail % % % % %



    Une requete dans ce style:
    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
     
    select
    	CASE
    		when nb_mail=1 then '1 mail'
    		when nb_mail=2 then '2 mail'
    		when nb_mail=3 then '3 mail'
    		when nb_mail=4 then '4 mail'
    		when nb_mail=5 then '5 mail'
    		else 'superieur à 5 mail'
    	END as Nombre_mail,
    	case when nb_theme=1 then avg(taux_ouv) end as '1theme',
    	case when nb_theme=2 then avg(taux_ouv) end as '2theme',
    	case when nb_theme=3 then avg(taux_ouv) end as '3theme',
    	case when nb_theme=4 then avg(taux_ouv) end as '4theme',
    	case when nb_theme=5 then avg(taux_ouv) end as '5theme',
    	case when nb_theme>5 then avg(taux_ouv) end as '6theme+',
    from ma_table
    group by
    		nb_mail


    Cette requete tourne pas car nb_theme non inclu dans le group by mais quand je le rajoute ça ne donne pas ce que je cherche.

  4. #4
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 154
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut
    Regarde du côté de PIVOT pour avoir autant de colonnes que de nombres de thèmes.
    On ne jouit bien que de ce qu’on partage.

  5. #5
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 136
    Points : 38 912
    Points
    38 912
    Billets dans le blog
    9

Discussions similaires

  1. Réponses: 2
    Dernier message: 04/01/2015, 15h28
  2. Action X en fonction d'une valeur dans une matrice
    Par CatzAndPaw dans le forum MATLAB
    Réponses: 13
    Dernier message: 04/04/2013, 12h39
  3. Réponses: 1
    Dernier message: 27/02/2013, 12h02
  4. requete sql en fonction de la valeur d'un champ
    Par Tee shot dans le forum Langage SQL
    Réponses: 3
    Dernier message: 11/06/2007, 16h01
  5. requete ajout en fonction de la valeur d'un champ ?
    Par mat75019 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 22/06/2006, 10h17

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