>_ IzzyLab

Практическое задание

SQLite: заказы выше среднего (подзапрос)

сложно

В базе /root/shop.db есть таблица orders(id, amount). Найди заказы, сумма которых больше средней суммы по всем заказам, и запиши их id (по одному в строке) в /root/out.txt.

Что потренируешь:
  • sqlite3
  • подзапрос
  • avg
  • скалярный select
  • where

Разбор темы

Скалярный подзапрос — это вложенный SELECT, возвращающий ровно одно значение, которое можно подставить прямо в условие внешнего запроса. Классический приём «сравнить каждую строку со сводным показателем по всей таблице»: агрегат (AVG, MAX и т.п.) считается во вложенном запросе, а внешний WHERE сравнивает с ним каждую строку. Обычным WHERE без подзапроса это не выразить — агрегат по всей таблице там недоступен.

Что проверяется

  1. заказы выше среднего найдены
  2. заказы не выше среднего отфильтрованы

Как это выглядит