[PostgreSQL] group 없이 count하기: over 함수
기본적으로 count 등의 집합함수를 사용할 때는 꽤나 큰 제약이 따른다.
항상 단일 값만을 반환하기 때문에, select 목록에 다른 복수 값들이 존재할 수 없다는 것이다.
count(user_no)는 단일 값이고, user_no는 여러 개가 있을 수 있기 때문에, 저건 에러를 뱉는다.
저걸 해결하려면 일단 그룹으로 묶어줄 수가 있다.
근데 썩 좋은 방법은 아닌 것 같다.
각각의 user_no끼리만 묶어버려서 다 1씩만 반환하고 만다.
그런데 나는 해당 Row의 개수를 전부 세서 함께 반환하고 싶다.
count 한번 하려고 쿼리를 따로 짜서 한번 더 돌리는게 성능을 더 많이 먹을 테니 말이다.
사실 이럴 때는 그냥 홀로 단일 값이 될 수 있는 count 값에 over를 달아주면 된다.
그럼 그룹 없이도 집합함수를 사용할 수 있다.
이런 식으로
이제 원하는대로 잘 돌아간다.