ГРУППИРОВАТЬ ПО дням в Postgres

#postgresql

#postgresql

Вопрос:

Я новичок в Postgres. У меня есть таблица, которая выглядит следующим образом:

 User
----
id (int)
createdOn (bigint)
isDeleted (boolean)
 

CreatedOn представляет количество миллисекунд, прошедших с эпохи. Я пытаюсь выяснить, сколько пользователей было создано за каждый день, у которых есть IsDeleted флаг 0. Я пробовал следующее, но это не работает:

 SELECT date_trunc('day', u.createdOn) AS "Day" , count(*) AS "No. of users"
FROM User u
WHERE u.isDeleted = 0 
GROUP BY 1 
ORDER BY 1;
 

Как мне создать этот запрос?

Спасибо!

Ответ №1:

Вы не говорите, что не работает, но я предполагаю, что это date_trunc функция

 select
    date_trunc('day', to_timestamp(createdOn)) as "Day",
    count(*) as "No. of users"
from User
where isDeleted = 0
group by 1
order by 1;
 

Комментарии:

1. Он не показывает количество за день. Он показывает только один день.

2. @user70192 Опубликуйте некоторые данные и схему таблицы: d the_table .

3. @user70192 Новое исправление (угадано). Если это секунды вместо миллисекунд, тогда нет необходимости делить на 1000