Re: bad execution plan for subselects containing windowing-function
От | Tom Lane |
---|---|
Тема | Re: bad execution plan for subselects containing windowing-function |
Дата | |
Msg-id | 25915.1263490925@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: bad execution plan for subselects containing windowing-function (Andreas Kretschmer <akretschmer@spamfence.net>) |
Ответы |
Re: bad execution plan for subselects containing
windowing-function
|
Список | pgsql-performance |
Andreas Kretschmer <akretschmer@spamfence.net> writes: > Tom Lane <tgl@sss.pgh.pa.us> wrote: >> I see no bug here. Your second query asks for a much more complicated >> computation, it's not surprising it takes longer. > But sorry, I disagree. It is the same query with the same result. I can't see > how the queries should return different results. In the first query select id, avg(value) over (partition by value) from values where id = 50 order by id; the avg() calculations are being done over only rows with id = 50. In the second query select * from (select id, avg(value) over (partition by value) from values order by id) foo where id = 50; they are being done over all rows. In this particular example you happen to get the same result, but that's just because "avg(foo) over partition by foo" is a dumb example --- it will necessarily just yield identically foo. In more realistic computations the results would be different. regards, tom lane
В списке pgsql-performance по дате отправления: