itspb

Sportmaster

Jun 21st, 2023
1,720
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -- 1
  2. -- Напишите SQL запрос, выбирающий имя клиента,
  3. -- оформившего заказ с максимальной суммой в январе 2022 года
  4. with orders_w_rank as (
  5.     select
  6.         coalesce(c.client_name, 'Не определено') as client_name
  7.         rank() over(order by order_sum desc) as order_sum_rank
  8.     from orders o
  9.     left join clients c on c.client_id = o.client_id
  10.     where
  11.         date_trunc('month', order_date) = '2022-01-01'
  12. )
  13. select client_name
  14. from orders_w_rank
  15. where order_sum_rank = 1
  16.  
  17. -- 2
  18. -- Напишите SQL запрос, который выводит количество доставленных(Delivered) и количество выполняемых(In Progress) заказов в разрезе даты с сортировкой по дням
  19. select
  20.     order_date::date as report_date,
  21.     count(case when order_state = 'Delivered' then order_id end) as delivered_count,
  22.     count(case when order_state = 'In Progress' then order_id end) as in_progress_count
  23. from orders
  24. group by 1
  25. order by 1
  26.  
  27. -- 3
  28. -- Напишите SQL запрос, который выведет имя клиента, который совершил только один заказ
  29. -- и только на заданную дату - 05.01.2022
  30. select
  31.     coalesce(c.client_name, 'Не определено') as client_name
  32. from orders o
  33. left join clients c on c.client_id = o.client_id
  34. where
  35.     order_date::date = '2022-01-05'
  36. group by 1
  37. having count(o.order_id) = 1
  38.  
Advertisement
Add Comment
Please, Sign In to add comment