次の表があります。
DPR_TS TIMESTAMP(6) Y
DPR_QOT_ID NUMBER(10) Y
DPR_CLOSE NUMBER(16,4) Y
DPR_OPEN NUMBER(16,4) Y
DPR_HIGH NUMBER(16,4) Y
DPR_LOW NUMBER(16,4) Y
DPR_VOLUME NUMBER(16,4) Y
同じ DPR_TS で異なる qot を持つ非常に頻繁に多くのエントリがあります。DPR_LOW、DPR_HIGH、DPR_VOLUME、DPR_OPEN は NULL の可能性があります。
次の例を参照してください。
DRP_TS DPR_QOT_ID DPR_CLOSE DPR_LOW
30.07.2013 09:00 1 12 12
30.07.2013 09:00 1 12 12
30.07.2013 09:00 1 12 12
30.07.2013 09:00 1 12 NULL
31.07.2013 09:00 1 13 13
31.07.2013 09:00 1 13 13
31.07.2013 09:00 1 13 NULL
30.07.2013 09:00 2 17 17
30.07.2013 09:00 2 18 17
30.07.2013 09:00 2 17 17
30.07.2013 09:00 2 17 17
30.07.2013 09:10 2 15 15
30.07.2013 09:10 2 15 NULL
上記のテーブルからこれらのエントリ (最新の dpr_close、min(dpr_low)、max(dpr_high)、max(dpr_open)、max(dpr_volume)、すべての集計された ny dpr_qot_id および trunc(dpr_ts)) を選択したいと思います。
DRP_TS DPR_QOT_ID DPR_CLOSE DPR_LOW
30.07.2013 09:00 1 12 12
31.07.2013 09:00 1 13 13
30.07.2013 09:10 2 15 15
私はこのクエリを試しました:
SELECT dpr_qot_id
,trunc(dpr_ts)
,(SELECT (dpr_close)
FROM tti_qot_load_ma t1
WHERE t1.dpr_qot_id = (t2.dpr_qot_id)
AND dpr_ts = (SELECT MAX(dpr_ts)
FROM tti_qot_load_ma t3
WHERE t1.dpr_qot_id = t3.dpr_qot_id)
AND rownum = 1)
,MAX(t2.dpr_high)
,MIN(t2.dpr_low)
,MAX(t2.dpr_open)
,MAX(t2.dpr_volume)
FROM tti_qot_load_ma t2
GROUP BY dpr_qot_id, trunc(dpr_ts)
とにかく、誰かがそれを見て、それが正しいかどうか教えてもらえますか? 説明プレーンは私には問題ないようです。とにかく、実行すると非常に時間がかかります。クエリが正しいかどうかわかりません。テーブルには多くのエントリがあります。