У меня есть результат запроса со следующими столбцами. Имя, значение, местоположение, дата Я хочу иметь еще две колонки с датой начала и окончания. Дата начала - пятница недели, а дата окончания - в следующий четверг. неделя начинается с 07/19/2013. Я хочу сгруппировать столбец даты. Я попытался использовать предложение WITH для генерации недель, но мне нужно сделать декартовое соединение и разрыв соединения.Группировка данных по неделям Oracle
WITH Q1 AS
(SELECT dates AS start_date , dates + 6 AS end_date FROM
(SELECT DATE '2013-07-18' + LEVEL-1 dates FROM DUAL CONNECT BY LEVEL <= (TRUNC(SYSDATE)- DATE '2013-07-18'))
WHERE TO_CHAR(dates,'DY') = 'FRI'
)
Select q1.Start_date, q1.end_date, t.name, t.value, t.date
from test1 t,Q1
where date between q1.start_date and Q1.end_date;
У меня есть exadata, на которой это Cartesian соединение работает отлично, но не в другой базе данных.
Выход должен быть
Start date End date Name value Date
---------- -------- ---- ----- --------
07/19/2013 07/25/2013 A 5 07/22/2013
07/19/2013 07/25/2013 b 3 07/23/2013
07/26/2013 08/01/2013 c 6 08/01/2013
08/02/2013 08/08/2013 A 2 08/06/2013
---
--
--
11/29/2013 12/05/2013 t 5 12/01/2013
11/29/2013 12/05/2013 s 3 12/02/2013
11/29/2013 12/05/2013 t 5 12/02/2013
Не знаете, почему вы считаете, что вам нужно декартово соединение. В псевдо-sql: 'select previous_sunday (date), follow_saturday (дата), дата, имя, значение, местоположение из ...' где 'previous_sunday (date)' и 'follow_saturday (date)' - выражения, которые вычисляют начало и даты окончания. –
@jimgarrison, я обновил свой вопрос, чтобы ответить на ваше декартовое соавторство. Я хочу писать по-другому. Как-то я получаю ORA-03113: конец файла на канале связи, но когда я запускаю другие запросы или что-то еще он работает отлично, что говорит, что он должен что-то сделать с этим запросом. –