내일배움캠프

230822 supabase postgreSQL view를 통해 통계 만들기

Neda 2023. 8. 22. 20:29

230822 supabase postgreSQL view를 통해 통계 만들기

특정 열의 값에 따라 통계를 만들기 위해서는  group by 절을 사용할 수 있는데, javascript api에서는 group by절을 사용할 수 없다. VIEW를 직접 만들어서 VIEW 테이블에 대해 select를 하여 통계를 가져올 수 있다.

 

  • 매칭 시스템을 만들고 있는 중이다. 사용자는 매칭이 끝나면 서로를 평가(리뷰)할 수 있다.
  • 이를 위해서 테이블을 만들었다.
  • profiles 테이블에는 사용자의 id를 포함한 사용자 데이터가 있고, role 열에는 사용자의 역할이 정의되어 있다. 'tutor' 또는 'student'이다.
  • review 테이블에는 사용자에 대한 각각의 리뷰에 대한 데이터가 있고, reviewed_id를 통해 리뷰를 받은 사용자의 id값을 알 수 있다.

 

튜터에 대한 리뷰 데이터 통계를 가져오기 위해서

사용자 데이터 중 튜터 역할(role='tutor')인 사용자에 대해서 그룹화하여 리뷰 테이블의 리뷰 데이터의 수를 Count한다.

결론 적으로 튜터 사용자에 대한 리뷰 갯수를 가질 수 있다.

 

뷰 테이블 만들기

create view most_review_tutor as
  select p.id, p.username, COUNT(r.id) as review_count
  from profiles p
  left join review r ON p.id = r.reviewed_id
  group BY p.id, p.username
  order BY review_count desc;

 

뷰 테이블 삭제하기

DROP VIEW IF EXISTS most_review_tutor;

 

 


 

CREATE VIEW

CREATE VIEW CREATE VIEW — define a new view Synopsis CREATE [ OR REPLACE ] [ TEMP | TEMPORARY ] …

www.postgresql.org

 

 

Tables and Data | Supabase Docs

When naming tables, use lowercase and underscores instead of spaces (e.g., table_name, not Table Name).

supabase.com

 

 

Postgres Views

Creating and using a view in PostgreSQL.

supabase.com