2010-08-19 3 views
0

Учитывая таблицу:Как группировать по дате недели или датам, которые начинаются по воскресеньям в оракуле 10?

day_date (форма гггг-мм-дд) column2 колонка3

Я хочу, чтобы сгруппировать данные по неделям, и начало каждой недели проходит с воскресенья по субботу, но Я хочу показать day_date.

Я огляделся по всему, и я ржав на своем SQL.

Спасибо!

ответ

1

Предполагая, что day_date этого поля даты и времени, и что вы хотите, чтобы отобразить начало недели, как группирования поля, попробуйте запрос вида:

select TRUNC(day_date)-TO_NUMBER(TO_CHAR(day_date,'D'))+1 week_start_date, 
     MAX(column2), MAX(column3) 
from yourtable 
group by TRUNC(day_date)-TO_NUMBER(TO_CHAR(day_date,'D'))+1; 

Если day_date это текстовое поле, представляющее дату в формате yyyy-mm-dd, вам нужно будет заменить day_date в запросе выше с to_date(day_date,'yyyy-mm-dd').

+0

Большое вам спасибо! Я сломал то, что вы написали, и это имеет смысл! – Setzer