Hi,
On Jan 18 05:43, Ivan Steganov wrote:
> ID        RIGHT
> ---------------------
> 20        1
> 20        2
> 20        5
> 20        10
> 30        2
> 30        10
> 
> Now I need to find out which IDs have, say rights 2 AND 5 AND 10.
SELECT t.id
FROM (SELECT id, sum(1) AS s  FROM id_n_rights  WHERE rights = ANY(ARRAY[2,5,10])  GROUP BY id) AS t
WHERE t.s = 3;        -- 3 = length(ARRAY[2,5,10])
HTH.
Regards.