Re: returning count(*) when it is > 1, else -1
| От | Gerardo Herzig |
|---|---|
| Тема | Re: returning count(*) when it is > 1, else -1 |
| Дата | |
| Msg-id | 48F88A12.3000900@fmed.uba.ar обсуждение исходный текст |
| Ответ на | Re: returning count(*) when it is > 1, else -1 (Tom Lane <tgl@sss.pgh.pa.us>) |
| Список | pgsql-sql |
Tom Lane wrote: > Richard Huxton <dev@archonet.com> writes: >> SELECT >> CASE WHEN total >0 THEN total ELSE -1 END AS new_total >> FROM ( >> SELECT count(*) AS total FROM test WHERE id=$1 >> ) AS raw_total > > Actually you could just do > > SELECT > CASE WHEN count(*) >0 THEN count(*) ELSE -1 END AS total > FROM test WHERE id=$1; > > PG has avoided redundant calculations of duplicate aggregates for some > time. (This doesn't help in the original formulation because it > actually had two different sub-selects; the case that is handled is > identical aggregate expressions within SELECT list or HAVING of a single > SELECT.) > > regards, tom lane > Thanks Tom! I like this one! It seems more readable to me. Thank you all! Yeah, even you Achilleas bastard (no ofense) :) Gerardo
В списке pgsql-sql по дате отправления: