Talk About Network

Google


Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Programming > Java Databases > Re: GROUP BY & ...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 2 of 6 Topic 3668 of 3800
Post > Topic >>

Re: GROUP BY & column not in select list

by Lew <lew@[EMAIL PROTECTED] > Mar 3, 2008 at 09:59 AM

anssiman@[EMAIL PROTECTED]
 wrote:
> is there any way to cheat group by -statement or make the query in

It isn't cheating, it's using GROUP BY as it's do***ented to work.

> other way? I mean that query:
> 
> SELECT userid, name, MAX(age) FROM users GROUP BY name;
> 
> produces list of the oldest users grouped by the name, but the
> userid is also available (this way it is not valid at all).
> 
> Table contains rows:
> ...
> 12 | Jack | 18
> 13 | Jim   | 22
> 14 | Jack | 56
> ...
> 
> and the query above should return:
> 13 | Jim   | 22
> 14 | Jack | 56
> 
> Keen to know if there is solution!

There is.

This is a SQL question, not a Java one, in the strictest sense, but every
Java 
(or C#, or VB) programmer needs to understand SQL fundamentals.  I use 
PostgreSQL as my standard, others use Derby ("Java Data Base") because it 
comes with Java these days.  Both are quite compliant.

The GROUP BY only works (correctly) when every column of the SELECT is
either 
in the GROUP BY clause, or aggregated.

You did neither with 'userid'.  Your particular SQL dialect accepted that,
and 
created a new row header from the unGROUPed column.

Either do not show userid at all, appropriate if it is an auto-sequenced 
column, or apply MAX() or MIN() to it, a dodge for when the column does
have a 
business-domain meaning.

  SELECT name, MAX(userid) AS userid, MAX(age)
   FROM users GROUP BY name
    ORDER BY name;

It's also a good idea to match GROUP BY with ORDER BY.

-- 
Lew
 




 6 Posts in Topic:
GROUP BY & column not in select list
anssiman@[EMAIL PROTECTED  2008-03-03 06:25:21 
Re: GROUP BY & column not in select list
Lew <lew@[EMAIL PROTEC  2008-03-03 09:59:32 
Re: GROUP BY & column not in select list
Lew <lew@[EMAIL PROTEC  2008-03-03 10:01:58 
Re: GROUP BY & column not in select list
Lew <lew@[EMAIL PROTEC  2008-03-03 10:31:15 
Re: GROUP BY & column not in select list
=?ISO-8859-1?Q?Arne_Vajh=  2008-03-03 22:29:28 
Re: GROUP BY & column not in select list
anssiman@[EMAIL PROTECTED  2008-03-03 23:52:28 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Sat Jul 26 4:46:57 CDT 2008.