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

Requêtes PostgreSQL Discussion :

Ajouter un champs calculé en utilisant where et les opérations mathématiques


Sujet :

Requêtes PostgreSQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2021
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2021
    Messages : 5
    Par défaut Ajouter un champs calculé en utilisant where et les opérations mathématiques
    ma requête fonctionne mais j'aimerais ajouter une colonne calculée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT x ,y ,colonne1
    FROM BASE1  inner join BASE2 ON BASE1.ID = BASE2.ID ;
    Je veux ajouter une ligne ou une colonne qui contiendra "les résultats" basés sur les informations de la colonne1. La colonne1 contient 2 éléments distincts "OUI" et "NON" ; j'aimerais compte le total de chacun d'eux et le diviser par le nombre total de tout les éléments de la colonne column1

    EX : disons qu'il y a 3 OUI et 5 NON j'aimerais obtenir un résultat de 3/8 = 0.375 pour les OUI et 5/8 = 0.625 pour les NON J'ai essayé ceci mais ça ne marche pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT x , 
    y , 
    column1, 
    ((COUNT () where column1= YES ) / COUNT () ) AS COLUMN_YES, 
    ((COUNT () where column1= NON ) / COUNT () ) AS COLUMN_NO
     
    FROM BASE1 ainner join BASE2 ON BASE1.ID = BASE2.ID
    Traduit avec www.DeepL.com/Translator (version gratuite)

  2. #2
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 465
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 465
    Par défaut
    Bonjour,
    Si je ne me trompe pas, tu peux faire un truc du genre:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    ... sum(case when column1 = yes then 1)/count(*)...

    Tatayo.

  3. #3
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 065
    Par défaut
    Bonjour,

    Ou encore, sous PostgreSQL, utiliser la clause FILTER :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ... 1.0 * COUNT(*) FILTER (WHERE column1 = 'YES') / COUNT(*) AS COLUMN_YES, 
    1.0 * COUNT(*) FILTER (WHERE column1 = 'NO') / COUNT(*) AS COLUMN_NO...
    Pour info, la multiplication par 1.0 évite d'obtenir le résultat d'une division entière.
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

Discussions similaires

  1. Utilisation d'un champ calculé dans le where
    Par thewolf dans le forum Langage SQL
    Réponses: 3
    Dernier message: 14/07/2021, 14h19
  2. [AC-2007] Requête pour ajouter une champ calculé à une table
    Par GroFlo dans le forum IHM
    Réponses: 2
    Dernier message: 14/02/2012, 15h51
  3. Requête pour champs calculés et condition WHERE
    Par chuchu57 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 20/05/2010, 15h16
  4. Réponses: 6
    Dernier message: 21/01/2008, 09h26
  5. [Requête/SQL]ajouter un champ calculé dans une table
    Par zougna dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 17/04/2007, 19h09

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