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

Home -> Community -> Mailing Lists -> Oracle-L -> RE: How to do a Top-N analysis, while avoiding subqueries

RE: How to do a Top-N analysis, while avoiding subqueries

From: <tristan.van.essen_at_accenture.com>
Date: Wed, 7 Jun 2006 12:09:23 +0200
Message-ID: <34634BDF4BFC37419B8214EC0FE4435401B59C0F@EMEXM1108.dir.svc.accenture.com>


Hi Muhammed  

It's just a case study. Is it possible to do without the sub query?  

Actually, the original question is not from me, but from a friend of mine. I was just thinking about a good solution all morning long and couldn't figure out a good answer to the question.  

I find it quite reasonable to try a simple thing like a Top-N analysis without the use of a (possibly costly) sub query.  

But maybe I'm just spoiled by the proprietary MySQL feature of LIMIT BY...  

Regards,

Tristan  


Tristan van Essen

Accenture Technology Solutions AG

Baslerstrasse 60

CH-8048 Zürich

Office: +41 44 405 3245

Mobile: +41 79 654 0592

Email: tristan.van.essen_at_accenture.com


From: Muhammed Soyer [mailto:msoyer_at_gmail.com] Sent: Mittwoch, 7. Juni 2006 12:02
To: van Essen, Tristan
Cc: oracle-l_at_freelists.org
Subject: Re: How to do a Top-N analysis, while avoiding subqueries  

Why dont you want to use sub queries ? Any solid reason or just for curiosity ..

2006/6/7, tristan.van.essen_at_accenture.com <tristan.van.essen_at_accenture.com>:

Hi folks, this is my first question in this mailing list.  

How do you do a top-n analysis while avoiding subqueries, but still use group functions on other columns?  

I have following Query:  

SELECT COUNT(city) quantity, city

FROM customer

GROUP BY city

ORDER BY quantity DESC;

This works fine so far with the exception that I only want the first record returned, instead of all. I tried to solve the problem with the ROWNUM function, but it won't work well. The problem here is that I must include ROWNUM in the GROUP BY clause, else the query fails. But then the result isn't right anymore. I wish there was any sort of LIMIT BY clause, like there is in MySQL.  

How can I solve this, while not using any subqueries?  

Regards,

Tristan    


Tristan van Essen

Accenture Technology Solutions AG

Baslerstrasse 60

CH-8048 Zürich

Office: +41 44 405 3245

Mobile : +41 79 654 0592

Email: tristan.van.essen_at_accenture.com  

This message is for the designated recipient only and may contain privileged, proprietary, or otherwise private information. If you have received it in error, please notify the sender immediately and delete the original. Any other use of the email by you is prohibited.  

This message is for the designated recipient only and may contain privileged, proprietary, or otherwise private information. If you have received it in error, please notify the sender immediately and delete the original. Any other use of the email by you is prohibited.

--
http://www.freelists.org/webpage/oracle-l
Received on Wed Jun 07 2006 - 05:09:23 CDT

Original text of this message

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