|
Sure...something like so I think....sales_rank
With tbl as (select region, area, restaurant, sales,
Rank() over ( partition by region order by sales) as
)trying
select region, area, restaurant, sales
from tbl
where sales_rank = 1
HTH,
Charles Wilt
--
Software Engineer
CINTAS Corporation - IT 92B
513.701.1307
wiltc@xxxxxxxxxx
-----Original Message-----
From: midrange-l-bounces@xxxxxxxxxxxx [mailto:midrange-l-
bounces@xxxxxxxxxxxx] On Behalf Of Michael_Schutte@xxxxxxxxxxxx
Sent: Thursday, July 24, 2008 10:38 AM
To: Midrange Systems Technical Discussion
Subject: SQL Ranking (WAS) Sql retrieve first 10 rows
I'm looking into using this ranking stuff for the first time. I'm
withto figure out if I can get the top restaurant for each region.
So in my table I have Region, Area, Restaurant, Sales
I'd like to get the top unit in sales for each region. Can I do that
followingone statement?
Michael Schutte
Admin Professional
Bob Evans Bob-B-Q: You haven't had barbeque until you've had Bob Evans
Bob-B-Q. Try our six Bob-B-Q dishes, starting at $5.99. For more
information, visit www.BobEvans.com.
midrange-l-bounces@xxxxxxxxxxxx wrote on 07/22/2008 10:53:07 AM:
Your statement would not work.
You are not using DENSE_RANK ( or RANK ) correctly. It makes no
sense to partition and order by the
same column when using DENSE_RANK() (or RANK) as you'll end up with
a rank of 1 for all rows.
Now if the OP was asking for the top 10 amounts by branch, then
DENSE_RANK (or RANK) would be the
correct function.
with tempTable ( BRANCH_CODE, AMOUNT, ROW_SEQ )
as ( select BRANCH_CODE,
AMOUNT,
dense_rank()
over (partition by BRANCH_CODE
order by AMOUNT desc)
as ROW_SEQ )
select * from tempTable where ROW_SEQ <= 10
However, in this case the OP just wanted the first 10 rows. Thus,
ROW_NUMBER() is the correct
function to use.
HTH,
Charles Wilt
--
Software Engineer
CINTAS Corporation - IT 92B
513.701.1307
wiltc@xxxxxxxxxx
-----Original Message-----
From: midrange-l-bounces@xxxxxxxxxxxx [mailto:midrange-l-
bounces@xxxxxxxxxxxx] On Behalf Of John Taylor
Sent: Tuesday, July 22, 2008 10:31 AM
To: 'Midrange Systems Technical Discussion'
Subject: RE: Sql retrieve first 10 rows
-----Original Message-----
From: midrange-l-bounces@xxxxxxxxxxxx [mailto:midrange-l-
bounces@xxxxxxxxxxxx] On Behalf Of beppecosta
I have a table that contains 2 fields: branch code and amount.
Is is possible to exctract the first 10 rows for each branch ?
Thanks.
Look at the DENSE_RANK() feature available as of V5R4. The
mailingcode
hasn'tshould get you started, but it's just off the top of my head, so
been
tested:
with tempTable ( BRANCH_CODE, AMOUNT, ROW_SEQ )
as ( select BRANCH_CODE,
AMOUNT,
dense_rank() over (partition by BRANCH_CODE order by
BRANCH_CODE)
as ROW_SEQ )
select * from tempTable where ROW_SEQ <= 10
Regards,
John Taylor
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L)
mailinglist
To post a message email: MIDRANGE-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/midrange-l.
This e-mail transmission contains information that is intended to be
confidential and privileged. If you receive this e-mail and you are
not a named addressee you are hereby notified that you are not
authorized to read, print, retain, copy or disseminate this
communication without the consent of the sender and that doing so is
prohibited and may be unlawful. Please reply to the message
immediately by informing the sender that the message was
misdirected. After replying, please delete and otherwise erase it
and any attachments from your computer system. Your assistance in
correcting this error is appreciated.
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L)
listlist
To post a message email: MIDRANGE-L@xxxxxxxxxxxx--
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/midrange-l.
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
list
To post a message email: MIDRANGE-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/midrange-l.
This e-mail transmission contains information that is intended to be
confidential and privileged. If you receive this e-mail and you are
not a named addressee you are hereby notified that you are not
authorized to read, print, retain, copy or disseminate this
communication without the consent of the sender and that doing so is
prohibited and may be unlawful. Please reply to the message
immediately by informing the sender that the message was
misdirected. After replying, please delete and otherwise erase it
and any attachments from your computer system. Your assistance in
correcting this error is appreciated.
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
To post a message email: MIDRANGE-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/midrange-l.
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.