Zadanie 24.

Dla zamówień o numerach 2355, 2413, 2377 i 2361 policz:

a) ile produktów zawiera każde z nich oraz podaj średnią cenę produktu

b) podaj kraj, z którego zostało złożone zamówienie; ile zamówień ma na koncie klient, który je złożył?

Schemat: OE, Tabele: Orders, Customers, Order_Items, Kolumny: order_id, product_id, unit_price, nls_territory, Wynik: 4 rows

Rozwiązanie

a) SELECT order_id, COUNT(product_id) as Products, to_char(AVG(unit_price), '999D99')as Avg_Price
FROM orders o INNER JOIN order_items oi USING(order_id)
WHERE order_id IN(2355, 2413, 2377, 2361)
GROUP BY order_id;

b) SELECT customer_id, MIN(c.nls_territory) as Country, COUNT(o.order_id) as Orders
FROM orders o INNER JOIN customers c USING(customer_id)
WHERE o.order_id IN(2355, 2413, 2377, 2361)
GROUP BY customer_id;

[collapse]
  • MM

    W a) JOIN jest zbędny, wystarczy dostęp do order_items. Przy okazji – ciekawe jest użycie MIN().