Группа BY при разных отметках времени - Oracle SQL - PullRequest
0 голосов
/ 09 июля 2020

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

  1. избежать добавления в группу по оператору? или
  2. изменить день на метке времени, чтобы все было как в первый день месяца? или
  3. извлеките четверть из метки времени, а затем попробуйте использовать в группе?

Спасибо enter image description here

Wanted output введите описание изображения здесь

Код, который я использую:

Выберите имя, центральную, группу, временную метку, извлечение (год из метки времени) как год, извлечение (месяц из метки времени) из таблицы1 Группа по имени , Central, Group, Timestamp

Я не могу удалить Timestamp из группы BY .. и добавление года и месяца в группу не меняет ничего

1 Ответ

0 голосов
/ 09 июля 2020

Итак, я так понимаю, вам нужен столбец метки времени в наборе результатов, и вы не хотите группировать по метке времени. Я не знаю, какой тип данных у вашего столбца TIMESTAMP, но для простоты я предполагаю, что это значение даты. Вы можете сделать что-то вроде этого:

select grupo,year,month,min(timestamp)
  from <yourtable>
group by grupo, year,month
;

Или вот так, чтобы вернуть первый день месяца:

select grupo,year,month,tunc(timestamp,'MM')
  from <yourtable>
group by grupo, year,month,tunc(timestamp,'MM')
;

Конечно, вы также можете сделать:

select grupo,year,month,min(trunc(timestamp,'MM'))
  from <yourtable>
group by grupo, year,month
;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...