Kuinka monta kertaa asiakkaat ovat tehneet tilauksia keskimäärin koko tilaushistorian ajalta?
SELECT customerNumber,COUNT(*)FROM ordersGROUP BY customerNumber;--kuinka monta kertaa yksittäinen asiakas on tilannutSELECT customerNumber,COUNT(*)FROM ordersWHEREstatus="Shipped"GROUP BY customerNumber;--sama mutta näyttää vain ne jotka on shippedSELECTAVG(d.c) AS keskiarvoFROM (SELECT customerNumber,COUNT(*) AS cFROM ordersWHEREstatus="Shipped"GROUP BY customerNumber)AS d;
Päivissä kerrottuna, mikä on toistuvia tilauksia tehneiden asiakkaiden keskimääräinen tilausaika? Ostaako asiakas siis viikoittain, kuukausittain vai vuosittain tuotteita?
Ketkä ovat asiakkaista ovat kärjessä tilauksien määrän mukaan järjestettynä koko tilaushistorian ajalta?
Montako tilausriviä tilaukset keskimäärin sisältävät koko tilaushistorian ajalta?
Tilauksien kokonaissummaa euroissa tarkasteltuna, mikä on kertaostosten keskimääräinen summa, maksimi ja minimi?
Mikä on keskimääräinen myynti kuukausittain lähetettyjen myyntien osalta koko tilaushistorian ajalta?
Mikä on keskimääräinen toimitusaika tilauksen saapumisen ja lähettämisen välillä koko tilaushistorian ajalta?
Ketkä asiakkaista ovat parhaiten maksavia asiakkaita, jotka ovat hoitaneet maksunsa?
Ketkä asiakkaista ovat parhaiten tilaavia eli ovat tehneet useimpia tilauksia?
Mitkä tuotteet ovat myyneet parhaiten koko tilaushistorian aikana?
Pienoismallin koon mukaan laskettuna, mitkä tuotteista ovat myyneet parhaiten tilaushistorian aikana?
Keskittyen vain muutamaan parhaiten myyvään tuotteeseen niin mihin maihin kyseisiä tuotteita myydään?
Mitkä tuoteryhmistä ovat parhaiten myyviä koko tilaushistorian aikana?
Ketkä ovat TOP10 huippumyyjää koko tilaushistorian ajalta?
Mitkä toimipaikoista ovat parhaiten myyviä niiden myynnin mukaan järjestettynä?
Mihin kaupunkeihin huippumyyjät myyvät eniten? Kun siis tiedämme ensin TOP10 huippumyyjää niin mihin kaupunkeihin he pääasiassa myyvät.
SELECT customerNumber, (MAX(orderDate) - MIN(orderDate)) / (COUNT(*) – 1
FROM orders
GROUP BY customerNumber
HAVING COUNT(*) > 1;
SELECT customerNumber,
COUNT(*)
FROM orders
GROUP BY customerNumber
ORDER BY COUNT(*) DESC
LIMIT 3;
SELECT count(orderLineNumber) / count(DISTINCT orderNumber) AS orders
FROM orderdetails;
SELECT MAX(total),
MIN(total),
AVG(total)
FROM
(SELECT orderNumber,
SUM(quantityOrdered * priceEach) AS total
FROM orderdetails
GROUP BY orderNumber) AS x;
SELECT MONTH(orderDate) AS MONTH,
YEAR(orderDate) AS YEAR,
avg(quantityOrdered * priceEach) AS AVG
FROM orders
INNER JOIN orderdetails USING (orderNumber)
WHERE status = 'shipped'
GROUP BY YEAR,
MONTH WITH ROLLUP;
SELECT round(avg(datediff(shippedDate, orderDate)))
FROM orders
WHERE status = 'shipped';
SELECT contactFirstName,
contactLastName,
city,
country,
amount
FROM customers
INNER JOIN payments
ORDER BY `payments`.`amount` DESC;
SELECT contactFirstName,
contactLastName,
city,
country,
quantityOrdered
FROM customers
INNER JOIN orderdetails
ORDER BY `orderdetails`.`quantityOrdered` DESC;
SELECT productName,
sum(quantityOrdered)
FROM products
INNER JOIN orderdetails ON products.productCode = orderdetails.productCode
GROUP BY productName
ORDER BY sum(quantityOrdered) DESC
LIMIT 10;
SELECT productScale,
sum(quantityOrdered) AS "Total orders",
sum(quantityOrdered*priceEach) AS "Total sales"
FROM products
INNER JOIN orderdetails ON products.productCode = orderdetails.productCode
GROUP BY productScale
ORDER BY sum(quantityOrdered) DESC;
SELECT country,
city,
productCode,
sum(quantityOrdered*priceEach) AS total
FROM orderdetails
INNER JOIN orders ON orderdetails.orderNumber = orders.orderNumber
INNER JOIN customers ON customers.customerNumber = orders.customerNumber
WHERE productCode IN ("S700_4002",
"S18_3232",
"S18_1342")
GROUP BY country,
city,
productCode
ORDER BY `total` DESC;
SELECT productLine,
sum(quantityOrdered*priceEach)
FROM products
INNER JOIN orderdetails ON products.productCode = orderdetails.productCode
GROUP BY productLine
ORDER BY sum(quantityOrdered*priceEach) DESC;
SELECT salesRepEmployeeNumber,
firstName,
lastName,
officeCode,
SUM(quantityOrdered * priceEach) sales
FROM customers
INNER JOIN orders USING (customerNumber)
INNER JOIN orderdetails USING (ordernumber)
INNER JOIN employees ON employeeNumber = salesRepEmployeeNumber
INNER JOIN offices USING (officeCode)
GROUP BY salesRepEmployeeNumber
ORDER BY sales DESC
LIMIT 10;
SELECT officeCode,
offices.city,
SUM(quantityOrdered * priceEach) sales
FROM customers
INNER JOIN orders USING (customerNumber)
INNER JOIN orderdetails USING (ordernumber)
INNER JOIN employees ON employeeNumber = salesRepEmployeeNumber
INNER JOIN offices USING (officeCode)
GROUP BY officeCode
ORDER BY sales DESC;
SELECT c.city,
Sum(o2.quantityordered * o2.priceeach) sales
FROM (SELECT salesrepemployeenumber,
Sum(quantityordered * priceeach) sales
FROM customers
INNER JOIN orders USING (customernumber)
INNER JOIN orderdetails USING (ordernumber)
GROUP BY salesrepemployeenumber
ORDER BY sales DESC
LIMIT 10) salestop10
INNER JOIN customers c
ON c.salesrepemployeenumber = salestop10.salesrepemployeenumber
INNER JOIN orders o1
ON o1.customernumber = c.customernumber
INNER JOIN orderdetails o2
ON o2.ordernumber = o1.ordernumber
GROUP BY c.city
ORDER BY city