Search Postgresql Archives

Re: select random order by random

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Chris Browne wrote:
> If I replicate your query, with extra columns, AND NAMES, I get the following:
> 
> test@[local]:5433=# select random() as r1, random() as r2, random() as r3 from generate_series(1,10) order by random();
>          r1         |         r2         |        r3         
> --------------------+--------------------+-------------------
>  0.0288224648684263 |  0.904462072532624 |  0.27792159980163
>   0.144174488261342 |  0.406729203648865 | 0.452183415647596
>  ...
> It is indeed somewhat curious that the query parser chose to interpret
> that the "order by random()" was referring to column #1.

And even more curiously, IMHO, even specifying
column names isn't enough.  Note that this:

li=# select * from (select (random()*10)::int as a, (random()*10)::int as b from generate_series(1,10) order by a) as x order by b;
 a | b
---+----
 0 |  8
 1 | 10
 3 |  4
 4 |  8
 5 |  1
 5 |  9
 6 |  4
 6 |  5
 8 |  4
 9 |  0
(10 rows)

is sorted by "a" even though the outermost "order by"
clause explicitly said to order by "b".

Seems like it's a known odd behavior ...
http://archives.postgresql.org/pgsql-general/2006-11/msg01523.php
http://archives.postgresql.org/pgsql-general/2006-11/msg01539.php
http://archives.postgresql.org/pgsql-general/2006-11/msg01544.php

---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux