こんにちは、誰かが助けてくれるかどうかわからない問題があります。ネストされたテーブルを作成し、テーブルに値を挿入しました。
CREATE OR REPLACE TYPE tt_hours AS OBJECT(hours INTEGER, data NUMBER);
/
CREATE OR REPLACE TYPE tt_day AS VARRAY(7) OF tt_hours;
/
CREATE TABLE NEM_RM16
(
DAY DATE,
VALUE_hours tt_day
);
INSERT INTO NEM_RM16
(day, value_hours)
VALUES
(TO_DATE('01/06/2012 22:00:34'),
tt_DAY(
tt_hours(1,0.025727),
tt_hours(2,0.012047),
tt_hours(3,0.012857),
tt_hours(4,0.012107),
tt_hours(5,0.012849),
tt_hours(6,0.01215),
tt_hours(7,0.0129)));
そのため、new_table には 30 行が挿入され、それぞれが今月 (6 月) の 1 日を表します。上記は、day = 01/06/2012 で 8 時間のデータを含む最初の行の例です。
特定の日のすべての平均時間を見つけるプログラムを作成するにはどうすればよいですか。
結果は 7 行 (1 週間に 7 日) になるはずです。
tt_hours (1, average over the month)
tt_hours (2, average over the month)
..........
2 番目のテーブル:
CREATE TABLE old_table ( tDAY DATE, VALUE_thours tt_day );
以下を使用して挿入しようとしました。結果を古いテーブルに挿入するには機能しませんでした。
insert into old_table (day, value_hours) values
(SELECT to_char(DAY, 'Day'),
hours, AVG(data) FROM NEM_RM16 n, TABLE(n.value_hours) v
GROUP BY to_char(DAY, 'Day'), hours);
たとえば、old_table には、select ステートメントを実行した後、金曜日に次のデータが含まれている必要があります。時間と日付はネストされたテーブルにあり、tdate は DATE 型です。ご覧のとおり、結果はselectステートメントが生成したものですが、同じ構造化テーブルに挿入されています。
tdate HOURS data
----------- ---------- ----------
Friday 1 0,025727
Friday 2 0,012047
Friday 3 0,012857
Friday 4 0,012107
Friday 5 0,012849
Friday 6 0,01215
Friday 7 0,0129