2 votes

mysql sélection conditionnelle utilisation dans une somme

J'ai une table jointe qui comprend les colonnes suivantes :

id_cat | category | risk_factor | rs | id_sample | R1 | R2 | rs

et je veux générer un tableau comme :

category | total | high | medium | low

où total, élevé, moyen et faible sont des sommes dérivées d'un calcul qui détermine si le "facteur de risque" est égal à "R1" ou à "R2" pour cette ligne,

selon le pseudo-code suivant

SELECT
        category, 
        count(*) as total,
        sum(case when R1 = risk_factor and R2 = risk_factor) = 1 as high,
        sum(case when R1 = risk_factor or R2 = risk_factor) = 1 as med,
        sum(case when R1 <> risk_factor and R2 <> risk_factor) = 1 as low
        FROM mydatabase.mytable1 
         JOIN mydatabase.mytable2 as r
            ON mytable1.rs=r.rs
                WHERE id_sample = 'sample1' 
                GROUP BY category
                ORDER BY category ASC;

Ma question est de savoir comment syntaxer correctement les instructions case dans les instructions sum.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X