次の質問を解決しようとしています:
2011 年 12 月 1 日から 2012 年 1 月 31 日までの週 (例: 1-52)、その週の開始日と終了日、およびその週に報告されたセンサーの温度の数を、週番号で並べ替えて表示します。降順。
次の選択で。
SELECT TO_CHAR(R.Report_Time,'WW') as Week, NEXT_DAY(R.Report_Time-7,'Monday'), NEXT_DAY(R.Report_Time-1, 'Sunday')
FROM REPORT R
WHERE R.Report_Time BETWEEN '01-DEC-2011' AND '31-JAN-2012'
GROUP BY Week
ORDER BY TO_CHAR(R.Report_Time, 'WW') DESC;
これにより、式によるグループ化ではないなど、クエリを正しく実行できないいくつかのエラーが発生しています。
テーブル REPORT は、データとレポート時間を含むレポートのリストです。
編集:
WE NEXT_DAY( NEXT_DAY( SENSOR_COUNT
-- --------- --------- ------------
03 16-JAN-12 22-JAN-12 1
02 09-JAN-12 15-JAN-12 1
02 09-JAN-12 15-JAN-12 1
02 09-JAN-12 15-JAN-12 1
プリントアウトしたものです。ここでわかるように、週だけでグループ化されているようには見えませんが、出力は次のように近いものになるはずです。
WE NEXT_DAY( NEXT_DAY( SENSOR_COUNT
-- --------- --------- ------------
03 16-JAN-12 22-JAN-12 1
02 09-JAN-12 15-JAN-12 3