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 -> ORACLE SQL QUERY Help!!!

ORACLE SQL QUERY Help!!!

From: <yilmaz.celik_at_gmail.com>
Date: 16 Jun 2006 17:21:02 -0700
Message-ID: <1150503662.651772.322520@p79g2000cwp.googlegroups.com>


Hi,

I am new to oracle plsql thing.

I have one table X like this. I want to get X amount of rows UNDER each group.

type	name	value

---------- ---------- ----------
1 a 1 1 a 2 1 a 3 1 b 4 1 b 4 1 b 4 1 b 3 1 b 3 1 b 2 1 b 5 1 c 3 1 c 5 1 c 6 1 c 7 1 c 7 1 d 1 1 d 2 2 e 1 2 e 2 2 e 2 2 e 3 2 f 23 2 f 3 2 f 4 2 f 2 2 g 4 2 g 2

I tried this:

select type,name,count(name),avg(value)

from x

group by type,name having count(name) > 3

order by count(name)

And the result is

type	name	count(name)         avg(value)

---------- ---------- ---------- ----------
1 b 6 3.57 1 c 5 5.6 1 a 3 2 2 e 4 2 2 f 4 8

The result is ok but my problem is : I WANT TO SEE ONLY 2 ROWS UNDER EACH TYPE. I try to do something with ROWNUM , but its X number of giving the rows begining from the top. but i want to see only 2rows undeR THE GROUP OF type.

PRINTOUT I WANT TO GET IS THIS:

type	name	count(name)	avg(value)
----------	----------	   ----------	                 ----------
1	b	    6	                  3.57
1	c	    5	                    5.6
2	e	    4	                    2
2	f	    4	                    8


CRITERIA: TOP 2 NAME UNDER EACH GROUP(TYPE) WHO HAS COUNT(NAME) >2 iF YOU CAN HELP ME I REALLY APPRECIATE IT. THANKS A LOT IN ADVANCE. Received on Fri Jun 16 2006 - 19:21:02 CDT

Original text of this message

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