Re: ALL() question
От | Richard Huxton |
---|---|
Тема | Re: ALL() question |
Дата | |
Msg-id | 473AE27E.6050103@archonet.com обсуждение исходный текст |
Ответ на | ALL() question (Julien Cigar <jcigar@ulb.ac.be>) |
Ответы |
Re: ALL() question
|
Список | pgsql-sql |
Julien Cigar wrote: > > What I would like is a query that returns all the specimen_id of > this table which have _all_ the given test_bit_id. [snip] > With the following I got a syntax error: > select specimen_id > from specimen_test_bits > where test_bit_id = all(1,2,3,4); It's expecting an array here. You'd have to write = all('{1,2,3,4}') But that would have the same problem as... > The following works but no rows are returned : > select specimen_id > from specimen_test_bits > where test_bit_id = all(select id from test_bits where id in (1,2,3,4)); It's testing each row individually and of course one row can't match ALL four values. What you want to do is count the distinct values. Something like: SELECT specimen_id FROM foo GROUP BY specimen_id HAVING count(distinct test_bit_id) = 4 ; -- Richard Huxton Archonet Ltd
В списке pgsql-sql по дате отправления: