Я использую Postgres 9.6. У меня есть таблица пользователей:
id | integer | | not null | nextval('user_id_seq'::regclass)
name | character varying | | not null |
И у меня есть action
таблица:
actioned_by | integer | | |
category | character varying | | not null |
t_actioned | timestamp without time zone | | not null |
И у меня есть запрос, который указывает, сколько дней за последние 30 дней пользователь был активен:
SELECT d.actioned_by, COUNT(*) AS cnt FROM
(SELECT date_trunc('day', t_actioned) AS day, actioned_by
FROM history
GROUP BY day, actioned_by) d
GROUP BY actioned_by
ORDER BY cnt DESC;
Но есть ли способ, которым я могу аннотировать каждого пользователя этим значением или создавать сокращенный способ обращения к нему?
Было бы очень полезно, если бы я мог делать такие вещи, как «получить всех французских пользователей, которые были активны более 5 дней в месяце», без необходимости каждый раз вводить все вышеперечисленное.
Возможно, мне нужен вид?