Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Задание 1: Количество и сумма бронирований за январь 2025 года, стоимостью от 20 до 3000
- SELECT
- COUNT(*) AS total_bookings,
- SUM(amount_sell) AS total_amount
- FROM
- Booking
- WHERE
- created_date >= '2025-01-01' AND created_date < '2025-02-01'
- AND amount_sell >= 20
- AND amount_sell <= 3000;
- -- Задание 2: Топ-99 партнёров по количеству бронирований, исключая города Paris и London
- SELECT
- p.partner_name AS "Название партнёра",
- COUNT(b.id) AS "Количество бронирований"
- FROM
- Booking b
- JOIN
- Partners p ON b.partner_id = p.id
- WHERE
- p.partner_city_name NOT IN ('Paris', 'London')
- GROUP BY
- p.id, p.partner_name
- ORDER BY
- COUNT(b.id) DESC
- LIMIT 99;
- -- Задание 3: Количество партнёров, которые сделали более 120 бронирований и содержат в названии 'тур' или 'трэвел'
- SELECT
- COUNT(*) AS partners_count
- FROM (
- SELECT
- p.id
- FROM
- Booking b
- JOIN
- Partners p ON b.partner_id = p.id
- WHERE
- LOWER(p.partner_name) LIKE '%тур%'
- OR LOWER(p.partner_name) LIKE '%трэвел%'
- GROUP BY
- p.id
- HAVING
- COUNT(b.id) > 120
- ) AS filtered_partners;
- -- Задание 4: Партнёр(ы) из Москвы с наибольшим количеством бронирований с 01.01.2024 по 15.05.2025
- WITH partner_sales AS (
- SELECT
- p.id,
- p.partner_name,
- COUNT(b.id) AS total_sales
- FROM
- Booking b
- JOIN
- Partners p ON b.partner_id = p.id
- WHERE
- p.partner_city_name = 'Moscow'
- AND b.created_date >= '2024-01-01'
- AND b.created_date <= '2025-05-15'
- GROUP BY
- p.id, p.partner_name
- ),
- max_sales AS (
- SELECT MAX(total_sales) AS max_count FROM partner_sales
- )
- SELECT
- ps.partner_name
- FROM
- partner_sales ps
- JOIN
- max_sales ms ON ps.total_sales = ms.max_count;
- -- Задание 5: Для каждого бронирования за 2024 год - название партнёра, ID бронирования, порядковый номер по дате и общее число бронирований партнёра
- SELECT
- p.partner_name AS "Название партнёра",
- b.id AS "Id бронирования",
- ROW_NUMBER() OVER (
- PARTITION BY p.id
- ORDER BY b.created_date
- ) AS "Порядковый номер бронирования по дате создания",
- COUNT(*) OVER (
- PARTITION BY p.id
- ) AS "Всего бронирований за 2024 год"
- FROM
- Booking b
- JOIN
- Partners p ON b.partner_id = p.id
- WHERE
- b.created_date >= '2024-01-01'
- AND b.created_date < '2025-01-01';
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement