Resumo : neste tutorial, você aprenderá sobre a SUM
IF
funçã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 IF
funçã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 SUM
função com a IF
funçã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 sales
com 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 sales
tabela possui quatro colunas:
id
para um identificador exclusivo.product_name
para armazenar o nome do produto.sale_date
para armazenar a data da venda.amount
para armazenar o valor da venda.
Segundo, insira algumas linhas na sales
tabela:
-- 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 SUM
função calcula a soma dos valores.
Segundo, a IF
função verifica três condições:
product_name = 'Phone'
: isso garante que apenas as linhas comPhone
sejam 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 Phone
em outubro de 2023.
Resumo
- Use o MySQL
SUM
IF
para realizar uma soma condicional.