로 가장 높은 값을받을제거 행 중복 및 다음 쿼리와 PostgreSQL을
SELECT
users.id,
users.username,
users.email,
groups.permission
FROM users
INNER JOIN memberships ON users.id = memberships.user_id
INNER JOIN groups ON memberships.group_id = groups.id
INNER JOIN groupings ON groups.id = groupings.group_id
WHERE groupings.repo_id = 1
GROUP BY users.id, groups.permission
ORDER BY users.id
나는 다음과 같은 행 수 :
----+---------------------------+-----------------------------------------+------------
id | username | email | permission
----+---------------------------+-----------------------------------------+------------
2 | viva_leuschke0 | [email protected] | 1
2 | viva_leuschke0 | [email protected] | 2
3 | loyce_herman1 | [email protected] | 1
3 | loyce_herman1 | [email protected] | 3
4 | verona_vandervort2 | [email protected] | 1
4 | verona_vandervort2 | [email protected] | 2
4 | verona_vandervort2 | [email protected] | 3
5 | bruen3_ms_hans | [email protected] | 1
5 | bruen3_ms_hans | [email protected] | 2
5 | bruen3_ms_hans | [email protected]telar.net | 3
----+---------------------------+-----------------------------------------+------------
질문은 : 나는 독특한 반환이 쿼리를 조정할 수있는 방법을 가장 높은 권한 값으로 필터링하는 행 예 :
----+---------------------------+-----------------------------------------+------------
id | username | email | permission
----+---------------------------+-----------------------------------------+------------
2 | viva_leuschke0 | [email protected] | 2
3 | loyce_herman1 | [email protected] | 3
4 | verona_vandervort2 | [email protected] | 3
5 | bruen3_ms_hans | [email protected] | 3
----+---------------------------+-----------------------------------------+------------
저는 PostgreSQL 9.1을 사용하고 있습니다.
업데이트 :DISTINCT ON
절을 사용하면 원하는 것을 얻을 수있었습니다.
SELECT DISTINCT ON(users.id)
users.id,
users.username,
users.email,
groups.permission
FROM users
INNER JOIN memberships ON users.id = memberships.user_id
INNER JOIN groups ON memberships.group_id = groups.id
INNER JOIN groupings ON groups.id = groupings.group_id
WHERE groupings.repo_id = 1
GROUP BY users.id, groups.permission
ORDER BY
users.id ASC,
groups.permission DESC
이것이 최선의 방법인가요? 더 정밀한 점검에
난 당신이 게시 가정 (유효를!) 당신이 응답 * *으로 발견 대답과 이용 약관을 읽고 동의. 그것은 권장되는 방법입니다. 자신의 질문에 대답 할 수 있습니다. –
Hehehehehe ... 실제로 쿼리가 작업에 가장 적합한 것인지 묻고있었습니다. –
두 가지를 놓친 것처럼 보입니다. 추가 된 질문과 추가 된 쿼리의 불완전 성. 니스, 깨끗한 질문, btw. –