Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.misc -> a SQL quiz

a SQL quiz

From: BM Lam <1116-530_at_online.de>
Date: Mon, 17 May 1999 00:02:34 +0200
Message-ID: <373F4079.27DE1FFE@online.de>


suppose there is a table with such content:

item month price


c    5     8
b    3     7
a    2     5
a    3     3
b    2     7
b    6     3

and you want to select only one row per item wher the row with the highest month is the candidate, i.e, the result set should be:

item month price


c    5     8
a    3     3
b    6     3

Intuitively, I think this should be feasible with a standard SELECT statement, using something like a GROUP BY clause, without getting into a procedural SQL language as PL/SQL or Transact SQL. But how do I get the syntax right?

SELECT item, price, max(month) from my_table GROUP BY item, price

on a Oracle system actully returns all the 6 rows. That is not what was intended. Does some one have a better idea?

Thanks for any hints


Received on Sun May 16 1999 - 17:02:34 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US