Here I have simplified tables and query, I don't get it why using select from view v_ticket requires grouping by column group_id also, but when selecting it directly from ticket table not?
create table ticket (ticket_id serial, group_id integer, status integer,
CONSTRAINT pkey PRIMARY KEY(ticket_id));
create table ticket_data (ticket_id integer, status integer);
create view v_ticket (ticket_id, group_id, status)
as select t.ticket_id, t.group_id, td.status
from ticket t
join ticket_data td on t.ticket_id = td.ticket_id;
insert into ticket (group_id, status)
select 1,5;
insert into ticket_data (ticket_id, status)
select 1,5;
This one throws an error:
select ticket_id, group_id, sum(status)
from v_ticket t
group by t.ticket_id;
ERROR: column "t.group_id" must appear in the GROUP BY clause or be used in an aggregate function LINE 1: select ticket_id, group_id, sum(status)
While this one doesn't:
select ticket_id, group_id, sum(status)
from ticket t
group by t.ticket_id;