Oblicz łączną sumę tych zamówień, których wartość wynosi powyżej 35000. Zadanie rozwiąż na kilka sposobów.
Schemat: OE, Tabela: Orders, Kolumny: order_total, Wynik: 1
[spoiler title=’Rozwiązanie’ style=’default’ collapse_link=’true’]
- Wersja najprostsza:
SELECT SUM(order_total) AS wynik
FROM orders
WHERE order_total > 35000;
- Wersja z CASE:
SELECT SUM(
CASE
WHEN order_total < 35000
THEN 0
ELSE order_total
END) AS wynik
FROM orders;
- Z subquery factoring:
WITH subquery AS (
SELECT order_total
FROM orders
WHERE order_total > 35000
)
SELECT SUM(order_total) AS wynik FROM subquery;
- Z podzapytaniem w klauzuli FROM:
SELECT SUM(order_total) AS wynik
FROM
( SELECT order_total
FROM orders
WHERE order_total > 35000
) Tab;
[/spoiler]