MySQL SOMA SE

Resumo : neste tutorial, você aprenderá sobre a SUM IFfunção MySQL para realizar somatório condicional.

Introdução às funções MySQL SUM IF

A SUM()função é uma função agregada que retorna o total de valores em uma coluna de uma tabela.:

SELECT SUM(column_name)
FROM table_name;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

A IFfunção é uma função de controle de fluxo que retorna um valor se uma condição for verdadeira e outro valor se a expressão for falsa:

IF(condition, value_if_true, value_if_false)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Ao combinar a SUMfunção com a IFfunção, você pode realizar a soma condicional, tornando-a uma ferramenta poderosa para análise de dados.

Aqui está a sintaxe básica do SUM IF:

SELECT SUM(IF(condition, value_to_sum, 0))
FROM table_name;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Nesta sintaxe:

  • condition: a condição que você deseja aplicar.
  • value_to_sum: o valor que você deseja somar se a condição for verdadeira.
  • 0: o valor a ser somado se a condição for falsa. Você pode alterá-lo para qualquer valor padrão que desejar.

Exemplo MySQL SUM IF

Vamos dar um exemplo de uso do SUM IF.

Primeiro, crie uma nova tabela nomeada salescom a seguinte estrutura:

CREATE TABLE sales (
    id INT AUTO_INCREMENT PRIMARY KEY,
    product_name VARCHAR(255),
    sale_date DATE,
    amount DECIMAL(10, 2)
);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

A salestabela possui quatro colunas:

  • idpara um identificador exclusivo.
  • product_namepara armazenar o nome do produto.
  • sale_datepara armazenar a data da venda.
  • amountpara armazenar o valor da venda.

Segundo, insira algumas linhas na salestabela:

-- Insert data for October
INSERT INTO sales (product_name, sale_date, amount)
VALUES
    ('Phone', '2023-10-01', 200.00),
    ('Tablet', '2023-10-05', 150.00),
    ('Phone', '2023-10-10', 220.00),
    ('Tablet', '2023-10-15', 180.00),
    ('Phone', '2023-10-20', 250.00),
    ('Tablet', '2023-10-25', 190.00),
    ('Phone', '2023-11-02', 210.00),
    ('Tablet', '2023-11-07', 160.00),
    ('Phone', '2023-11-12', 230.00),
    ('Tablet', '2023-11-18', 170.00),
    ('Phone', '2023-11-23', 240.00),
    ('Tablet', '2023-11-28', 200.00),
    ('Phone', '2023-12-03', 190.00),
    ('Tablet', '2023-12-08', 140.00),
    ('Phone', '2023-12-13', 210.00),
    ('Tablet', '2023-12-19', 160.00),
    ('Phone', '2023-12-24', 230.00),
    ('Tablet', '2023-12-29', 180.00);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Terceiro, calcule o valor total das vendas de “Telefone” em outubro de 2023

SELECT 
  SUM(
    IF(
      product_name = 'Phone' 
      AND MONTH(sale_date) = 10 
      AND YEAR(sale_date) = 2023, 
      amount, 
      0
    )
  ) AS total_sales 
FROM 
  sales;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+-------------+
| total_sales |
+-------------+
|      670.00 |
+-------------+
1 row in set (0.00 sec)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Veja como a consulta funciona.

Primeiro, a SUMfunção calcula a soma dos valores.

Segundo, a IFfunção verifica três condições:

  • product_name = 'Phone': isso garante que apenas as linhas com Phonesejam consideradas.
  • MONTH(sale_date) = 10: Verifica se a data de venda é em outubro ( 10).
  • YEAR(sale_date) = 2023: Verifica se o ano é 2023.

A consulta retorna o valor total das vendas Phoneem outubro de 2023.

Resumo

  • Use o MySQL SUM IFpara realizar uma soma condicional.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *