web-dev-qa-db-ja.com

Oracleでレコードごとにカウントし、日付ごとにカウントする必要がある

次のようなテーブルがあります

   ID                created    sent    type
-----------------------------------------------------
0001463583000051783  31-JUL-12  1   270
0081289563000051788  01-AUG-12  1   270
0081289563000051792  01-AUG-12  1   270
0081289563000051791  01-AUG-12  1   270
0081289563000051806  01-AUG-12  1   270
0001421999000051824  06-AUG-12  1   270
0001421999000051826  06-AUG-12  1   270
0001464485000051828  06-AUG-12  1   270
0082162128000051862  09-AUG-12  2   278
0082162128000051861  09-AUG-12  2   278
0022409222082910259  09-AUG-12  3   278

出力用に次のものが必要です

created     Count
---------------------
31-JUL-12   1
01-AUG-12   4
06-AUG-12   3
09-AUG-12   3

Oracle 10gでSQL Developerを使用してこれを達成するのはどれほど難しいでしょうか?

このようなテーブルを生成するためにいくつかのクエリを試してみましたが、最終的には日付でカウントがグループ化されず、毎日5000〜10000のトランザクションの平均をとると、カウントに「1」が表示されます。多分それを複雑にしています。しかし、私は日付範囲内で毎日トランザクションの量をプルできる簡単なものが欲しいです。

1
camarokris

私が何かを欠落していない限り、クエリは次のようになります。

select created, count(*) CreatedCount
from yourtable
group by created
order by created;

参照 SQL Fiddleデモあり

または、日付に関連付けられた時刻がある場合は、TRUNCを使用できます。

select trunc(created), count(*) CreatedCount
from yourtable
group by trunc(created)
order by trunc(created);

参照 SQL Fiddleデモあり

7
Taryn