excelle SUMIF en SQL

la fonction Microsoft Excel sumif additionne les cellules qui remplissent une condition:

Excel: =SUMIF(<source>, <condition>)

le même comportement peut être obtenu en SQL en utilisant un case expression dans la sum fonction:

 SQL: SUM(CASE WHEN <condition> THEN <wert> END)

dans Excel, la <source> définit des cellules arbitraires—AX:AY dans les exemples suivants. En SQL, la sélection des lignes est séparée de la sélection des colonnes., Le group by et over clauses de spécifier les lignes. La colonne est utilisé explicitement dans le <condition> dans le case expression.

Excel: =SUMIF(Ax:Ay, 42) SQL: SUM(CASE WHEN A = 42 THEN A END)

La condition n’est pas mis sous les guillemets, même pas lors de l’utilisation d’un opérateur de comparaison:

Excel: =SUMIF(Ax:Ay, "> 42") SQL: SUM(CASE WHEN A > 42 THEN A END)

Le case expression accepte des valeurs différentes dans le when et then branches., Cela vous permet de faire la même chose que le troisième argument de la fonction sumif.

Excel: =SUMIF(Ax:Ay, "> 42", Bx:By) SQL: SUM(CASE WHEN A > 42 THEN B END)

Les valeurs de texte doivent cependant être placées sous des guillemets uniques0:

Excel: =SUMIF(Ax:Ay, "Marvin", Bx:By) SQL: SUM(CASE WHEN A = 'Marvin' THEN B END)

que les comparaisons de texte SQL ignorent ou non les différences de casse dépend de ce que l’on appelle le classement. Même la valeur par défaut varie entre les produits de base de données: MySQL, MariaDB et SQL Server effectuent des comparaisons insensibles à la casse par défaut. PostgreSQL, La base de données Oracle et sqlite prennent-par défaut-en compte les différences de cas.,

contrairement à la fonction Excelsumif, SQL n’applique pas de correspondance Générique lors de la comparaison de chaînes avec le signe égal (=). Pour utiliser des caractères génériques dans SQL, vous devez utiliser l’opérateurlike. La balise like opérateur utilise le trait de soulignement (_) comme un caractère générique pour un seul caractère et le signe de pourcentage (%) comme le générique pour n’importe quel nombre de caractères—comme ? et * Excelle dans sumif.,

Excel: =SUMIFIF(Ax:Ay, "Marvin*", Bx:By) SQL: suM(CASE WHEN A LIKE 'Marvin%' THEN B END)

Sumif sur plusieurs colonnes est fait comme la somme de count fonction par colonne:

Excel: =SUMIF(Ax:Cy, 42) SQL: SUM(CASE WHEN A = 42 THEN A END) + SUM(CASE WHEN B = 42 THEN B END) + SUM(CASE WHEN C = 42 THEN C END)

La fonction Sumifs peut souvent être mise en œuvre avec un and condition dans la balise case expression.,

Excel: =SUMIFS(Bx:By, Ax:Ay, 42, Cx:Cy, 43) SQL: COUNT(CASE WHEN A = 42 AND C = 43 THEN B END)

More about this and related topics:

  • The SQL case expression

  • The filter clause in SQL

  • The SQL null value

  • Excel countif in SQL

Author: admin

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *