sobresale SUMIF en SQL

La función de Microsoft Excel sumif suma celdas que cumplen una condición:

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

el mismo comportamiento se puede obtener en SQL usando un case expresión dentro de la función sum:

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

en Excel, el <Source> define celdas arbitrarias—AX:AY en los siguientes ejemplos. En SQL, la selección de las filas es independiente de la selección de las columnas., El group by y over cláusulas especificar las filas. La columna se usa explícitamente en la expresión <condition> que se coloca en la expresión case.

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

La condición no es puesto bajo cita—no, incluso cuando se utiliza un operador de comparación:

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

El case expresión acepta valores diferentes en el when y then ramas., Esto le permite hacer lo mismo que el tercer argumento de la función sumif.

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

los valores de texto, sin embargo, deben colocarse bajo una sola quotes0:

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

Si las comparaciones de texto SQL ignoran las diferencias de mayúsculas y minúsculas depende de la llamada intercalación. Incluso el valor predeterminado varía entre los productos de base de datos: MySQL, MariaDB y SQL Server realizan comparaciones que no distinguen entre mayúsculas y minúsculas de forma predeterminada. PostgreSQL, Oracle database y SQLite tienen en cuenta, por defecto, las diferencias de mayúsculas y minúsculas.,

a diferencia de la función Excel sumif, SQL No aplica coincidencias de comodines al comparar cadenas con el signo igual (=). Para usar comodines en SQL, debe usar el operador like. El operador like usa el guion bajo (_) como comodín para un solo carácter y el signo de porcentaje (%) como comodín para cualquier número de caracteres, como ? y * in excels sumif.,

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

Sumif sobre varias columnas se realiza como la suma de una count función por columna:

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 función Sumifs a menudo se puede implementar con una condición and en la expresión case.,

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *