Advertisement
Step8rother

Подзапросы в WHERE, задача 3

Jun 27th, 2023
2,346
0
Never
1
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 1.22 KB | Source Code | 0 0
  1. /*Для каждой страны (поле billing_country) посчитайте минимальное, максимальное и среднее значение выручки из поля total. Назовите поля так: min_total, max_total и avg_total. Нужные поля для выгрузки хранит таблица invoice.
  2. При подсчёте учитывайте только те заказы, которые включают более пяти треков. Стоимость заказа должна превышать среднюю цену одного трека. Используйте код, написанный в предыдущих заданиях.
  3. Отсортируйте итоговую таблицу по значению в поле avg_total от большего к меньшему.
  4. */
  5.  
  6. SELECT billing_country,
  7.        MIN(total) AS min_total,
  8.        MAX(total) AS max_total,
  9.        AVG(total) AS avg_total
  10. FROM invoice
  11. WHERE invoice_id IN
  12.     (SELECT invoice_id
  13.      FROM invoice_line
  14.      GROUP BY invoice_id
  15.      HAVING COUNT(invoice_id) > 5)
  16.   AND total >
  17.     (SELECT AVG(unit_price)
  18.      FROM invoice_line)
  19. GROUP BY billing_country
  20. ORDER BY avg_total DESC;
Advertisement
Comments
  • t7235
    1 year
    # text 0.53 KB | 0 0
    1. необходимо добавить псевдонимы, иначе тренажер не примет
    2.  
    3. SELECT i.billing_country,
    4. MIN(i.total) AS min_total,
    5. MAX(i.total) AS max_total,
    6. AVG(i.total) AS avg_total
    7. FROM invoice AS i
    8. WHERE i.invoice_id IN
    9. (SELECT invoice_id
    10. FROM invoice_line
    11. GROUP BY invoice_id
    12. HAVING COUNT(invoice_line_id) > 5)
    13. AND i.total >
    14. (SELECT AVG(unit_price)
    15. FROM invoice_line)
    16. GROUP BY i.billing_country
    17. ORDER BY avg_total DESC, i.billing_country;
Add Comment
Please, Sign In to add comment
Advertisement