[Dbix-class] Using 'DISTINCT ON' clause in select statement
John Siracusa
siracusa at mindspring.com
Fri Aug 18 22:43:59 CEST 2006
On 8/18/06, Mark Blythe <list at markblythe.com> wrote:
> On 8/18/06, Paul Henrich <phenrich at butler.edu> wrote:
>> It seems postgres has a strange syntax/behavior for GROUP BY that becomes
>> difficult to work with when using SQL::Abstract and when working with joined
>> tables. Basically, any column you select must be used in the GROUP BY or in
>> an aggregate function.
>
> If I'm not mistaken, that is ANSI SQL syntax. MySQL allows you to
> select other columns without using them in the GROUP BY, but that's an
> extension of the standard.
...where "extension of the standard" here means "crazy thing that
makes no sense."
CREATE TABLE t (a INT, b INT, c INT);
INSERT INTO t VALUES (1, 2, 3);
INSERT INTO t VALUES (1, 2, 4);
INSERT INTO t VALUES (1, 2, 5);
INSERT INTO t VALUES (1, 2, 6);
Now guess what value c will have in the row returned by this query:
SELECT a, SUM(b), c FROM t GROUP BY a;
Good old MySQL...
-John
More information about the Dbix-class
mailing list