Create view to load memberships

This commit is contained in:
2023-06-19 19:00:35 +02:00
parent c2e93aebbe
commit 0ef722d29f
4 changed files with 55 additions and 1 deletions

View File

@ -1,4 +1,5 @@
-- This file should undo anything in `up.sql`
drop view if exists families_memberships ;
DROP table IF EXISTS memberships ;
DROP table IF EXISTS families;
DROP table IF EXISTS users;

View File

@ -28,4 +28,44 @@ CREATE TABLE memberships (
is_admin BOOLEAN NOT NULL DEFAULT FALSE,
PRIMARY KEY(user_id, family_id)
);
);
-- Create views
create view
families_memberships
as
select
m.user_id ,
m.family_id,
m.is_admin ,
f."name",
f.time_create,
f.invitation_code,
cm.num as count_members,
ca.num as count_admins
from
memberships m
left join families f on
f.id = m.family_id
-- count members
left join (
select
family_id ,
count(*) as num
from
memberships m
group by
family_id) cm on
cm.family_id = m.family_id
-- count admins
left join (
select
family_id ,
count(*) as num
from
memberships m
where
m.is_admin = true
group by
family_id) ca on
ca.family_id = m.family_id