Каталог
Веб-разработка с нуля: четыре курса по порядку.
HTML, затем CSS, JavaScript и SQL. Каждый курс говорит, что нужно знать до него и что вы будете уметь после.
Загружаем курсы…
Каталог
HTML, затем CSS, JavaScript и SQL. Каждый курс говорит, что нужно знать до него и что вы будете уметь после.
Загружаем курсы…
Урок 32 из 52 · 7 мин
Даём подзапросу имя и пишем сложный запрос по шагам.
Мой запрос похож на матрёшку. Через день я сама его не понимаю.
Вынеси шаги наверх через WITH и дай им имена. Читается сверху вниз, как рецепт.
WITHWITH имя AS (SELECT …) перед основным запросом. Дальше имя используется как таблица. Шагов может быть несколько, через запятую.WITH spending AS (
SELECT o.customer_id, sum(oi.quantity * oi.unit_price) AS spent
FROM orders o
JOIN order_items oi ON oi.order_id = o.id
WHERE o.status = 'done'
GROUP BY o.customer_id
)
SELECT customer_id, spent
FROM spending
ORDER BY spent DESC
LIMIT 5;Больше одного уровня вложенности — переписывай на WITH. Имена шагов — существительные: spending, regulars.
Через WITH посчитай траты покупателей на выполненные заказы и выведи name покупателя и spent — только тех, кто потратил больше 500.
WITH — пока нетcategories — категории товаровid, nameproducts — товарыid, name, category_id, price, weight_g, is_available, added_oncustomers — покупателиid, name, email, city, phone, birthday, registered_onstaff — сотрудникиid, name, role, salary, hired_on, manager_idorders — заказыid, customer_id, staff_id, created_at, statusorder_items — позиции заказовorder_id, product_id, quantity, unit_pricereviews — отзывыid, customer_id, product_id, rating, comment, created_onВыберите один ответ.
Главная польза WITH?
Введите короткий ответ без лишних пробелов.
С какого слова начинается запрос с общим табличным выражением?
Проверяем состояние обучения…