Re: difficult query
От | Joel Burton |
---|---|
Тема | Re: difficult query |
Дата | |
Msg-id | JGEPJNMCKODMDHGOBKDNOENICMAA.joel@joelburton.com обсуждение исходный текст |
Ответ на | Re: difficult query (Ian Barwick <barwick@gmx.net>) |
Список | pgsql-sql |
> > I'm curious. I've been on a sql course long time ago where the tutor > > mentioned similiar problem as something special for sql smarties... And > > yesterday when I faced this problem (which can be solved perfectly with > > the outer join) I wasn't able to remember the solution... If there is > > any... Just out of curiosity... > > well, you could do it like this I suppose: > > SELECT 1 AS day, COUNT(data) FROM table1 WHERE day=1 > UNION > SELECT 2, COUNT(data) FROM table1 WHERE day=2 > UNION > SELECT 3, COUNT(data) FROM table1 WHERE day=3 > UNION > SELECT 4, COUNT(data) FROM table1 WHERE day=4 > > (and so on ad infinitum) > > although I expect E.F. Codd will be turning in his grave ;-) A little better, perhaps, but still a true hack: select alldays.d, sum(c) from (select 1 as d union all select 2 union all select 3 union all select 4 union all select5 ...) as alldays left outer join d using (d) group by alldays.d; If you could write a function in plpgsql that returned a query result, you could use that as the from clause rather than the long union.
В списке pgsql-sql по дате отправления: