PostgreSQL с использованием to_char для последующего агрегирования тестов, как преобразовать часть месяца обратно в дату - PullRequest
0 голосов
/ 25 марта 2020

Я использую следующее для преобразования переменной даты в ГГГГ и Пн

select
to_char(date, 'Mon')                     as month,
extract(year from date)                  as year,
v1,
count(v2) as count
from data
group by 1,2,3
order by 2,1;

Однако, когда я делаю заказ по, он не упорядочивает мои данные должным образом. Поэтому я думаю, что мне нужно преобразовать Mon либо в число, либо обратно в дату, чтобы иметь возможность правильно ее отсортировать. Мысли? * * 1004

Ответы [ 2 ]

0 голосов
/ 25 марта 2020

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

select to_char(month_date, 'Mon' as month,
       extract(year from month_date) as year,
       v1,
       count
from (       
  select date_trunc('month', "date") as month_date
         v1,
         count(v2) as count
  from data
  group by 1,2
)
order by month_date
0 голосов
/ 25 марта 2020

Конечно нет. Это упорядочение по названию месяца.

Вместо этого просто упорядочите по дате:

order by date

Если бы это был запрос агрегации, вы бы использовали функцию агрегирования:

order by min(date)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...