Considere a execução dos seguintes comandos em SQL: CREATE T...
Considere a execução dos seguintes comandos em SQL:
CREATE TABLE vendas (
id INT UNSIGNED NOT NULL
AUTO_INCREMENT PRIMARY KEY,
dat_venda DATETIME NOT NULL
DEFAULT CURRENT_TIMESTAMP,
vendedor VARCHAR(15) NOT NULL,
cliente VARCHAR(15) NOT NULL,
uf CHAR(2) NOT NULL DEFAULT 'RJ',
produto VARCHAR(15) NOT NULL
DEFAULT 'PROD1',
qtde INT NOT NULL,
valor_unitario FLOAT DEFAULT NULL);
INSERT INTO vendas (
dat_venda, vendedor, cliente, uf, produto, qtde,
valor_unitario) VALUES ('2023-01-01', 'VEND001',
'CLI001', 'SP', 'PROD3', 2, 20);
INSERT INTO vendas (
dat_venda, vendedor, cliente, uf, produto, qtde,
valor_unitario) VALUES ('2023-01-02', 'VEND001',
'CLI001', 'SP', 'PROD3', 3, 20);
INSERT INTO vendas (
dat_venda, vendedor, cliente, uf, produto, qtde,
valor_unitario) VALUES ('2023-01-01', 'VEND002',
'CLI002', 'RJ', 'PROD1', 20, 5);
INSERT INTO vendas (
dat_venda, vendedor, cliente, uf, produto, qtde,
valor_unitario) VALUES ('2023-01-05', 'VEND001',
'CLI001', 'SC', 'PROD3', 2, 20);
INSERT INTO vendas (
dat_venda, vendedor, cliente, uf, produto, qtde,
valor_unitario) VALUES ('2023-01-06', 'VEND002',
'CLI002', 'MG', 'PROD2', 5, 10);
INSERT INTO vendas (
dat_venda, vendedor, cliente, uf, produto, qtde,
valor_unitario) VALUES ('2023-01-05', 'VEND003',
'CLI004', 'RJ', 'PROD3', 2, 20);
INSERT INTO vendas (
dat_venda, vendedor, cliente, uf, produto, qtde,
valor_unitario) VALUES ('2023-01-04', 'VEND003',
'CLI003', 'SC', 'PROD4', 10, 3);
SELECT V1.vendedor, V1.uf, COUNT(*) AS qtde_vendas,
SUM(V1.qtde*V1.valor_unitario) AS total_venda,
V2.media_venda
FROM vendas V1
INNER JOIN
(SELECT vendedor,
AVG(qtde* valor_unitario) AS media_venda
FROM vendas
GROUP BY vendedor
) V2
ON V2.vendedor = V1.vendedor
WHERE V1.dat_venda
BETWEEN '2023-01-01' AND '2023-01-04'
GROUP BY V1.vendedor, V1.uf
HAVING SUM(V1.qtde*V1.valor_unitario) > V2.media_venda
ORDER BY V1.vendedor;
Após a execução dos comandos apresentados, a quantidade de
linhas que a consulta irá retornar é: