2016-03-30 10 views
0

私はcreate_dtとorder_typeのテーブルを持っています。今では、異なる日付の異なる注文の数が必要です。Oracleでのクエリによるグループ

2016年3月22日にtype_1(2)、type_2(3)、2016年3月23日の注文数がcount(それぞれの数は異なる行を意味します)の注文がありますが、type_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

役立ちます:

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 

そして、あなたがcreate_DtでORDER_TYPE列を持っている場合は、

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

に参加する必要はありませんが編集:私があなたを正しく理解した場合:

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を日付の列に使用して秒単位でグループ化します。 – Charmi

1
​​

ので、深夜にcreate_dt列の時間成分を切り捨てるtrunc()を使用して、同じ日の行は同じ日付値を持ち、日単位でグループ化できます。

関連する問題