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

SQLite Discussion :

Valeur qui apparaît dans + de 50% de lignes


Sujet :

SQLite

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2020
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2020
    Messages : 25
    Points : 24
    Points
    24
    Par défaut Valeur qui apparaît dans + de 50% de lignes
    Bonjour,
    Je suis toujours sur ma BDD d'un restaurant qui gère des commandes.
    Voici les tables dont j'ai besoin pour trouver ma requête :
    Référence:
    -Ref_ID
    -Titre
    -Type (qui ici sera 'Dessert')
    -PrixUnite (en Francs XPF/Pacifique)
    Est_constitue_de:
    -Commande_ID
    -Ref_ID
    -Quantite (de la référence)
    PrixParCommande:
    -Commande_ID
    -DateRec
    -HeureRec
    -PrixTotal (les références de la commande multipliées par leur quantité puis additionnées) (en Francs XPF/Pacifique)
    Je voudrais trouver les desserts qui ont été commandé par + que 50% des commandes de + de 15000 F le mois dernier.
    Pour trouver les commandes de + de 15000 F:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select count(Commande_ID) from PrixParCommande where PrixTotal>15000;
    Pour trouver les titres des desserts qui sont compris dans des commandes de + de 15000 F:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select distinct Titre from PrixParCommande natural join Est_constitue_de natural join Reference where Type = 'Dessert' and PrixTotal > 15000;
    Pour trouver les titres des desserts qui sont compris dans des commandes de + de 15000 F du mois dernier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select distinct Titre from PrixParCommande natural join Est_constitue_de natural join Reference where Type = 'Dessert' and PrixTotal > 15000 and (DateRec between '2020-05-01' and '2020-05-31');
    Maintenant il faut que je trouve comment faire pour ne sélectionner que les desserts qui sont dans + de 50% des commandes (de + de 15000 F du mois dernier).
    Mais je ne sais pas comment m'y prendre.
    Merci pour l'aide que vous pourrez m'apporter

  2. #2
    Membre émérite Avatar de vttman
    Homme Profil pro
    Développeur "couteau mosellan"
    Inscrit en
    Décembre 2002
    Messages
    1 140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur "couteau mosellan"
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 140
    Points : 2 286
    Points
    2 286
    Par défaut
    Je verrais bien un truc comme ça
    =>

    Ceci donne le nombre de fois que le titre apparait
    =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select Titre, count(*) as cpt
    from PrixParCommande natural join Est_constitue_de natural join Reference 
    where Type = 'Dessert' and PrixTotal > 15000 
    and (DateRec between '2020-05-01' and '2020-05-31')
    group by Titre
    ;
    et ceci le total général
    =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select count(*) 
    from PrixParCommande natural join Est_constitue_de natural join Reference 
    where Type = 'Dessert' and PrixTotal > 15000 
    and (DateRec between '2020-05-01' and '2020-05-31');

    ensuite pour le rapprochement, on peut par exemple faire ceci ou autres ...
    =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    select Titre, count(*) / 
    (select count(*) 
    from PrixParCommande natural join Est_constitue_de natural join Reference 
    where Type = 'Dessert' and PrixTotal > 15000 
    and (DateRec between '2020-05-01' and '2020-05-31')
    ) * 100 as pourcentage
    from PrixParCommande natural join Est_constitue_de natural join Reference 
    where Type = 'Dessert' and PrixTotal > 15000 
    and (DateRec between '2020-05-01' and '2020-05-31')
    group by Titre
    having pourcentage > 50
    A adapter et à tester quoi
    Emérite, émérite je ne pense pas ... plutôt dans le développement depuis FORT FORT longtemps, c'est mon job, ça oui
    A part ça ... Il ne pleut jamais en Moselle !

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2020
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2020
    Messages : 25
    Points : 24
    Points
    24
    Par défaut
    Merci ! J'ai juste eu besoin de modifier légèrement ce que vous m'avez donné et j'ai eu ce que je recherchais !

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

Discussions similaires

  1. Modifier l'URL qui apparaît dans barre adresse navigateur
    Par laurentSc dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 27/08/2011, 13h27
  2. Réponses: 2
    Dernier message: 15/06/2011, 10h03
  3. Réponses: 4
    Dernier message: 30/11/2010, 13h28
  4. Réponses: 2
    Dernier message: 29/09/2009, 15h33
  5. Réponses: 7
    Dernier message: 28/01/2007, 11h38

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