Eccelle SUMIF in SQL

La funzione di Microsoft Excel sumif aggiunge celle che soddisfano una condizione:

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

Lo stesso comportamento può essere ottenuto in SQL utilizzando un case espressione all’interno del sum funzione:

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

In Excel, <fonte> definisce arbitrario cellule—Ax:Ay negli esempi seguenti. In SQL, il prelievo delle righe è separato dal prelievo delle colonne., Le clausolegroup by eover specificano le righe. La colonna viene utilizzata esplicitamente nell’espressione<condition> che viene inserita nell’espressionecase.

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

La condizione non viene messo sotto virgolette, non anche quando si utilizza un operatore di confronto:

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

case espressione accetta valori diversi nel when e then rami., Questo ti permette di fare la stessa cosa del terzo argomento della funzione sumif.

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

I valori di testo, tuttavia, devono essere messi sotto singole quote0:

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

Se i confronti di testo SQL ignorano o meno le differenze di caso dipende dalla cosiddetta collazione. Anche l’impostazione predefinita varia tra i prodotti del database: MySQL, MariaDB e SQL Server eseguono confronti senza distinzione tra maiuscole e minuscole per impostazione predefinita. PostgreSQL, Oracle database e SQLite do—per default-tengono conto delle differenze di caso.,

A differenza della funzione Excelsumif, SQL non applica corrispondenze jolly quando si confrontano le stringhe con il segno di uguale (=). Per utilizzare i caratteri jolly in SQL, è necessario utilizzare l’operatorelike. like operatore utilizza un carattere di sottolineatura (_) come carattere jolly per un singolo carattere e il segno di percentuale (%) come il jolly per qualsiasi numero di caratteri come ? e * in Eccelle sumif.,

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

Sumif su più colonne è fatto come la somma di un count funzione per colonna:

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 funzione Sumifs spesso può essere implementato con un and condizione case espressione.,

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

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *