Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations waross on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

Select but not quite distinct =)

Status
Not open for further replies.

jonzieBoy

Electrical
Oct 2, 2002
2
SE
Hi!

I have a problem figuring out how to formulate my select-query. I will try to illustrate my problem :)

Table:

col1 | col2
-----------
A | 10
B | 13
B | 14
C | 11

I want to select every distinct occurence in col1 choosing the record with the highest value in col2, ie. i want the result set to be:

col1 | col2
-----------
A | 10
B | 14
C | 11

Any clues as how to do this? Any help wold be appreciated!

Regards,

Jonas
 
Replies continue below

Recommended for you

I realise I knew the answer to this one, but if I modify it slighly it gives me a headache again, like thus:

Table:

col1 | col2 | col3
--------------------
A | 10 | Z
B | 13 | X
B | 14 | X
C | 11 | Y

Now, if I use

SELECT DISTINCT col1, MAX(col2), col3 FROM Table GROUP BY col1, col3

I still get all 4 posts even though I only wanted 3, ie

col1 | col2 | col3
--------------------
A | 10 | Z
B | 14 | X
C | 11 | Y

Why do I have to GROUP BY col3 as well?

How do I include col3 without corrupting my previously successful query?

Rgr,

Jonas

 
SQL requires that any column not aggregated in the result (i.e. sum, average, max) must appear in the GROUP BY expression. Therefore, if you include col3 in your SELECT statement, it must also appear in the GROUP BY statement.

In your example, it appears that col3 is a constant function or mapping of col1, such that A=Z, B=X, C=Y. If that is the case, then you can exclude col3 from the query and then calculate it after you get the query's results.

Hope this helps!
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top