-- 1. a) Faça um resumo da quantidade vendida (SalesQuantity) de acordo com o canal de vendas
-- (channelkey).
-- b) Faça um agrupamento mostrando a quantidade total vendida (SalesQuantity) e quantidade
-- total devolvida (Return Quantity) de acordo com o ID das lojas (StoreKey).
-- c) Faça um resumo do valor total vendido (SalesAmount) para cada canal de venda, mas apenas
-- para o ano de 2007.

-- a)
SELECT 
	channelKey AS 'CANAL DE VENDAS',
	SUM(SalesQuantity) AS 'QTDE VENDIDA'
FROM 
	FactSales
GROUP BY
	channelKey

-- b)
SELECT 
	StoreKey,
	SUM(SalesQuantity) AS 'QTD VENDIDA',
	SUM(ReturnQuantity) AS 'QTD DEVOLVIDA'
FROM
	FactSales
GROUP BY
	StoreKey

-- c)
SELECT
	channelKey AS 'CANAL DE VENDAS',
	SUM(SalesAmount) AS 'VALOR TOTAL VENDIDO'
FROM 
	FactSales
WHERE DateKey = '2007'
GROUP BY
	channelKey

-- 2. Você precisa fazer uma análise de vendas por produtos. O objetivo final é descobrir o valor
-- total vendido (SalesAmount) por produto (ProductKey).
-- a) A tabela final deverá estar ordenada de acordo com a quantidade vendida e, além disso,
-- mostrar apenas os produtos que tiveram um resultado final de vendas maior do que
-- $5.000.000.
-- b) Faça uma adaptação no exercício anterior e mostre os Top 10 produtos com mais vendas.
-- Desconsidere o filtro de $5.000.000 aplicado

-- a)
SELECT
	ProductKey AS 'PRODUTO',
	SUM(SalesAmount) AS 'TOTAL VENDIDO'
FROM
	FactSales
GROUP BY
	ProductKey
HAVING 
	SUM(SalesAmount) > 5000000
ORDER BY
	SUM(SalesAmount) DESC

-- B)
SELECT
	TOP(10)
	ProductKey AS 'PRODUTO',
	SUM(SalesAmount) AS 'TOTAL VENDIDO'
FROM
	FactSales
GROUP BY
	ProductKey
ORDER BY
	SUM(SalesAmount) DESC

-- FACTONLINESALES
-- 3. a) Você deve fazer uma consulta à tabela FactOnlineSales e descobrir qual é o ID
-- (CustomerKey) do cliente que mais realizou compras online (de acordo com a coluna
-- SalesQuantity).
-- b) Feito isso, faça um agrupamento de total vendido (SalesQuantity) por ID do produto
-- e descubra quais foram os top 3 produtos mais comprados pelo cliente da letra a).

-- a)
SELECT TOP(1)
	CustomerKey AS 'CLIENTE',
	SUM(SalesQuantity) AS 'QTDE VENDIDA'
FROM 
	FactOnlineSales
GROUP BY
	CustomerKey

ORDER BY
	SUM(SalesQuantity) DESC

-- b)
SELECT TOP(3)
	ProductKey AS 'ID DO PRODUTO',
	SUM(SalesQuantity) AS 'QTDE VENDIDA'
FROM
	FactOnlineSales
WHERE
	CustomerKey = 19037
GROUP BY
	ProductKey
ORDER BY
	SUM(SalesQuantity) DESC

-- DIMPRODUCT
-- 4. a) Faça um agrupamento e descubra a quantidade total de produtos por marca.
-- b) Determine a média do preço unitário (UnitPrice) para cada ClassName.
-- c) Faça um agrupamento de cores e descubra o peso total que cada cor de produto possui.
-- a)
SELECT
	BrandName AS 'PRODUTOS',
	COUNT(DISTINCT ProductName) AS 'QTDE DE PRODUTOS'
FROM
	DimProduct
GROUP BY
	BrandName
ORDER BY
	COUNT(DISTINCT ProductName) DESC
-- b)
SELECT
	ClassName,
	AVG(UnitPrice) AS 'MÉDIA DO PREÇO UNITÁRIO'
FROM
	DimProduct
GROUP BY
	ClassName
ORDER BY
	AVG(UnitPrice) DESC
-- c)
SELECT
	ColorName AS 'CORES',
	CONCAT(SUM(Weight),' KG') AS 'PESO' 
FROM
	DimProduct
GROUP BY
	ColorName
ORDER BY
	SUM(Weight) DESC