Witam,
mam pewien problem* z PostgreSQL. W wyniku zapytania otrzymuję:
Kod
1;f
1;t
2;t
2;f
3;f
3;f

Chciałbym teraz tak przekształcić ten zbiór żeby mieć po pierwszym rekordzie dla każdego ID czyli finalnie chcę uzyskać to:
Kod
1;f
2;t
3;f

Nie bardzo wiem jak to uzyskać.

Generalnie mam funkcję, która zwraca taki zbiór uprawnień do zasobów po drodze wykonując takie zapytanie:

* Problem rozwiązany:
http://stackoverflow.com/questions/821811/...he-first-record
  1. SELECT
  2. -- resource_id, permission -- Źle...
  3. DISTINCT ON (resource_id) resource_id, permission -- To jest OK!
  4. FROM
  5. (
  6. -- Pobranie uprawnien przypisanych bezposrednio do uzytkownika (2 jako wyzszy priorytet)
  7. SELECT
  8. acl_resource_id AS resource_id, permission AS permission, 2 AS priority
  9. FROM
  10. acl_resources_users
  11. WHERE
  12. user_id=1
  13. UNION
  14. -- Pobranie uprawnien przypisanych do rol uzytkownika (1 jako nizszy priorytet)
  15. SELECT
  16. b.acl_resource_id AS resource_id, permission AS permission, 1 AS priority
  17. FROM
  18. acl_roles_users AS a
  19. JOIN acl_resources_acl_roles b USING (acl_role_id)
  20. WHERE
  21. a.user_id=1
  22. ) AS t
  23. GROUP BY
  24. resource_id, permission, priority
  25. ORDER BY
  26. resource_id ASC, priority DESC

Proszę o pomoc,
pion