2016-03-30 2 views
0

У меня есть таблица с create_dt и order_type, теперь я хочу подсчет разных заказов в разные даты.Группа по запросу в Oracle

См., Например, 22 марта 2016 г. У меня есть заказы со счетом (каждый счет означает другую строку) порядков типа_1 (2), type_2 (3) и № 23 марта 2016 г. У меня есть тип_1 (5) и type_2 (3).

Ожидаемый результат должен быть

Order_type count(order_type) create_dt 
type_1  2     22-03-2016 
type_1  5     23-03-2016 
type_2  3     22-03-2016 
type_2  3     23-03-2016 

Может кто-то помочь здесь в этом?

ответ

0

Надеется, что это помогает

SELECT create_dt, Order_type, count(order_type) 
from table_name 
group by create_dt, Order_type; 
+0

просто измените порядок строк по вопросу – sqlab

1

Thats простой группе по запросу:

SELECT s.order_type,count(*) as type,t.create_Dt 
FROM create_dt t 
INNER JOIN order_type s 
ON(t.order_id = s.order_id) 
GROUP BY s.order_type,t.create_dt 

И если у вас есть столбец ORDER_TYPE в create_Dt вам не нужно, чтобы присоединиться к

SELECT t.order_type,count(*) as type,trunc(t.create_dt) 
FROM create_dt t 
GROUP BY t.order_type,trunc(t.create_dt) 

EDIT: Если вы правильно поняли:

SELECT s.order_Type,count(*) as Type,t.create_dt 
FROM order_type s 
LEFT OUTER JOIN create_dt 
ON(s.order_type = t.order_type) 
GROUP BY s.order_Type,t.create_dt 

Если вы хотите месяц без записи, чтобы выглядеть как 0, изменить количество к этому:

count(t.order_type) 
+0

Create_dt и order_type из одной таблицы. Проблема с нижестоящим запросом заключается в том, что она возвращает мне строки, которые всегда имеют счет 1 на каждую дату, так как это становится уникальной комбинацией. Я уже пробовал это, но он не работает –

+0

Я не уверен, что я следую, попробуйте мой обновленный ответ @KulbhushanSingh – sagi

+0

Используйте столбцы trunc on date для группировки по дням, а не секундам. – Charmi

1
SELECT trunc(create_dt), 
     Order_type, 
     count(order_type) 
from  table_name 
group by trunc(create_dt), 
     Order_type; 

Используйте trunc() усечь временную составляющую create_dt колонны до полуночи, так что строки в тот же день будут иметь одинаковые значения даты и могут быть сгруппированы по дням.