Магазины с более чем 100 заказами за месяц
SQLJunior10 минпроверка — Спринтзапрос · PostgreSQL14-t022
Таблица orders (id, amount, user_id, shop_id, created_at, updated_at).
Выведи shop_id и количество заказов (orders_count), созданных в марте 2024 года, для магазинов, у которых таких заказов больше 100.
schema.sqlsql
1CREATE TABLE orders (2 id serial PRIMARY KEY,3 amount numeric NOT NULL,4 user_id int NOT NULL,5 shop_id int NOT NULL,6 created_at timestamp NOT NULL,7 updated_at timestamp NOT NULL8);9-- магазин 1: 150 заказов в марте10INSERT INTO orders (amount, user_id, shop_id, created_at, updated_at)11SELECT 100, g, 1, timestamp '2024-03-01 08:00' + (g % 30) * interval '1 day', timestamp '2024-03-01 08:00' + (g % 30) * interval '1 day'12FROM generate_series(1, 150) g;13-- магазин 2: ровно 100 заказов в марте14INSERT INTO orders (amount, user_id, shop_id, created_at, updated_at)15SELECT 100, g, 2, timestamp '2024-03-02 10:00' + (g % 28) * interval '1 day', timestamp '2024-03-02 10:00'16FROM generate_series(1, 100) g;17-- магазин 3: 100 заказов 1–30 марта + 1 заказ 31 марта в 23:59:59 = 101; плюс соседние месяцы на границах18INSERT INTO orders (amount, user_id, shop_id, created_at, updated_at)19SELECT 100, g, 3, timestamp '2024-03-01 00:00' + (g % 30) * interval '1 day', timestamp '2024-03-01 00:00'20FROM generate_series(1, 100) g;21INSERT INTO orders (amount, user_id, shop_id, created_at, updated_at) VALUES22 (100, 1, 3, '2024-03-31 23:59:59', '2024-03-31 23:59:59'),23 (100, 1, 3, '2024-04-01 00:00:00', '2024-04-01 00:00:00'),24 (100, 1, 3, '2024-02-29 23:59:59', '2024-02-29 23:59:59');25-- магазин 4: 90 заказов в марте и 50 в феврале, которые обновлялись в марте26INSERT INTO orders (amount, user_id, shop_id, created_at, updated_at)27SELECT 100, g, 4, timestamp '2024-03-05 12:00', timestamp '2024-03-05 12:00' FROM generate_series(1, 90) g;28INSERT INTO orders (amount, user_id, shop_id, created_at, updated_at)29SELECT 100, g, 4, timestamp '2024-02-10 12:00', timestamp '2024-03-10 12:00' FROM generate_series(1, 50) g;⌘ Enter — проверить