Пожалуйста, помогите мне обернуть голову вокруг подзапросов (при условии, что это то, что здесь необходимо) У меня есть таблица заказов и клиентов . Я хочу написать запрос, который показывает мне как количество заказов для всех клиентов, так и количество заказов для клиентов с указанным профилем c.
select count(o.order_no) from orders o
where o.order_dt = '20200320'
и
select count(o.order_no) from orders o
left join customers c on o.cust_no = c.cust_no
where o.order_dt = '20200320' and c.cust_prfl in ('C', 'D')
Итак, я ищу два агрегатных значения одновременно - сначала количество заказов на установленную дату, а затем также тот же агрегат, но с дополнительным условием клиентов с указанным профилем c. Следовательно, результат должен быть:
3 2
Дополнительный гаечный ключ, который у меня есть, - это то, что я бы даже хотел, чтобы таблица customer быть включенным select count(c.cust_prfl) from customers c where c.cust_prfl in ('C', 'D', 'E')
, но это не проблема. Но в идеальном случае у меня будет 3 2 3
Я не могу использовать команду union
для соединения отдельных запросов, так как мне нужен результат в разных столбцах, а не ряды.
ORDERS
Order_no Order_dt Cust_no
101 20200303 1
102 20200320 3
103 20200320 3
104 20200320 2
CUSTOMERS
Cust_no Cust_prfl
1 A
2 B
3 C
4 C
5 D