Select subset of rows from league - help!

I have a league with 15 teams, but I only want to show 5 teams at a time. However, one of these teams must be my team (TeamX).
So I need a select statement that will find TeamX and will return 5 teams with 3 teams above and 1 below it.
However, if TeamX is within the top 3, I just need to display the top 5 teams, and if TeamX is bottom of the league, I just need to display the 4 teams above it!
I have absolutely no idea how to go about doing this!

This is not a very inspired solution...I guss I've been in the sun too long today. But, if your teams are ranked in order 1st, 2nd, 3rd, etc. then this should do the trick. You can move TEAMX around in the list to see the different use cases.
WITH teams AS
SELECT 'TeamA' team_name, 1 rank FROM dual
UNION ALL
SELECT 'TeamB', 2 FROM dual
UNION ALL
SELECT 'TeamC', 3 FROM dual
UNION ALL
SELECT 'TeamD', 4 FROM dual
UNION ALL
SELECT 'TeamE', 5 FROM dual
UNION ALL
SELECT 'TEAMX', 6 FROM dual
UNION ALL
SELECT 'TeamF', 7 FROM dual
UNION ALL
SELECT 'TeamG', 8 FROM dual
UNION ALL
SELECT 'TeamH', 9 FROM dual
UNION ALL
SELECT 'TeamI', 10 FROM dual
SELECT t1.team_name,
       t1.rank
FROM   teams t1,
        SELECT team_name,
               rank,
               max(rank) OVER () max_rank
        FROM   teams
       ) t2
WHERE  t2.team_name = 'TEAMX'
AND    t1.rank >= least(greatest(t2.rank-3,1),t2.max_rank-4)
AND    t1.rank <= least(greatest(t2.rank-3,1),t2.max_rank-4)+4
ORDER BY t1.rank;
TEAM_       RANK
TeamC          3
TeamD          4
TeamE          5
TEAMX          6
TeamF          7Here's how it came out with TEAMX in 2nd...
TEAM_       RANK
TeamA          1
TEAMX          2
TeamB          3
TeamC          4
TeamD          5And in 9th...
TEAM_       RANK
TeamF          6
TeamG          7
TeamH          8
TEAMX          9
TeamI         10Greg

Similar Messages

  • Selecting a single row from table control of standard transaction via repor

    Hi Experts,
    I have a requirement of selecting a single row from standard trasaction via ineractive report.
    For eg. for a given document number & item number, how can i select the specified item from transaction VA03.
    I am using call transaction to naviagate to the screen but unable to select the specified item.
    thanks in adavance for your Help.

    You mean selecting the item via BDC?
    Have you tried something like:
    perform bdc_field       using 'BDC_CURSOR'
                                  'VBAP-POSNR(01)'.
    perform bdc_field       using 'RV45A-VBAP_SELKZ(01)'
                                  'X'.
    or whatever your dynpro is to select the first row?

  • How to select odd/even rows from table....

    How to select odd/even rows from a table?
    Please help.
    Edited by: vaibhav on May 7, 2012 5:30 AM

    just don't expect the results to come out in the sequence odd, even, odd, even .....
    The answer you have marked correct needs two order by clauses to guarantee that.
    The inner select will return rows in a random order, potentially different each time you run it. The outer select may not return rows in the same order as the inner one.

  • Is it possible to select a subset of rows from a Numbers table?

    I know I can use the COUNTIF, SUMIF, AVERAGEIF functions to operate on a subset of rows in a Numbers table based on a condition. What I would like is to be able to use other functions, for example the MAX and MIN functions.
    For example, give a table like this:
    A
    B
    1
    Fred
    20
    2
    George
    30
    3
    Fred
    25
    4
    Bob
    15
    5
    Bob
    20
    6
    Fred
    10
    7
    George
    9
    8
    George
    25
    9
    Fred
    12
    10
    Bob
    13
    What I want could be expressed as =MAX( SELECTIF(A1:A10, "=Fred", B1:B10) )
    Where the SELECTIF function would return a range containing B1,B3, B6 and B9 that could be operated on by the MAX function.

    There is no single function to do what you want.  Here is a way you can achive your goal:
    This is a down-and -dirty solution because I am not sure how you want to use the informtion (so I kept it all in one table):
    E1=IFERROR(MATCH($D$1, B, 0), "")
    F1=IFERROR(VLOOKUP(E1-1,$A$2:$C$11, 3), "")
    E2=IFERROR(E1+MATCH($D$1, INDIRECT("B"&E1+1&":B"&ROWS(Table 11)), 0), "")
    F2=IFERROR(VLOOKUP(E2-1,$A$2:$C$11, 3), "")
    select E2 and F2, then fill down
    Now find the max:
    D2=MAX(F)

  • Selecting an entire row with the help of Checkbox

    Hi and Evening to Everybody,
    I have a Scenario where i need to select an entire row using the check box. Let me first define the Situation. I created a Simple Sql-report where the first column is a Simple Checkbox and the second column is a display only name and followed by the rest 5 columns as a checkbox.
    my table structure is :
    **create table satt (SELECT_ALL VARCHAR2(10), Name VARCHAR2(50), Object1 VARCHAR2(10), Object2 VARCHAR2(10), Object3 VARCHAR2(10), Object4 VARCHAR2(10), Object5 VARCHAR2(10));**
    Now i had a requirement where i need to Check All or Uncheck All Checkbox by clicking SELECT_ALL column header and i made it using
    simple java-script :
    "<input type="Checkbox" onclick="$f_CheckFirstColumn(this)">"
    Now i need to Check all checkbox in a row by clicking any of the SELECT_ALL check boxes. (Say i have 5 checkboxes in SELECT_ALL column and if i click 3rd checkbox... i need the entire 3rd row checkbox to be checked on click of that 3rd check box).
    I hope i was clear with my question. i did my best. Please help me out with this... Im eagerly lookin for the solutions.
    Thanks & Regards,
    - The Beginner.
    Edited by: 854477 on Jul 13, 2011 4:57 AM
    Edited by: 854477 on Jul 13, 2011 5:01 AM

    Solomon Yakobson wrote:
    There is no row order in relational tables unless ORDER BY is used, so there is no way to decide if 3 Mathematics belongs to 100 or to 200.
    SY.That's not how I interpretted it. I thought he was saying that in the first row column B has the value:
    '1 Physics'||chr(10)||'2 Chemistry'||chr(10)||'3 Mathematics'
    in which case something like this would work
    select a,replace(b,chr(10),chr(10)||a||' ') from table;

  • Select a single row from a billion row table

    This is a fictitious scenario, how would you write a select statement on a table with a billion rows. It never returns anything,right? Somebody was suggesting a stored procedure.
    As an example : Assuming a Table with columns      Account(int), TransDate(DateTime), TransNum(int) and few other columns. I need a transaction that happened on 03-05-2014 8:15PM. Clustered index on Account. Non- clustered on TransDate.
    I was suggested to create a stored procedure, inside the SP you have 3 parameters: min_date, max_date, avg= min_date+max_date/2. You create a loop and feed the avg value to the max_date or min_date depending on where the row is. This is a suggestion
    that I am not clear my-self but wanted to see if you guys can help me develop this idea.
    Also please suggest how you would do it in your world. You guys could have much better ideas probably much simpler one's. Thanks in advance.
    svk

    I basically just need transaction for one particular datetime. Not any span. One of our senior developers suggested that a simple select statement takes for ever to return a single row from a billion rows and suggested a vague idea as above. 
    Either there is a suitable index on the column, and the SELECT will be fast.
    Or there is no index on the column, and in that case it will take quite some time to find the row. The only reason to loop is that you don't want to take out a table lock, but in that case you would do something like looping one account at a time. Looping
    over different time values will only mean that you will scan the table multiple times.
    Erland Sommarskog, SQL Server MVP, [email protected]

  • Selecting a one row from the database is not working

    Hi all I am having a small problem with getting a row from my database to show up. Here is the code for the search that I want to do
                            String item; String columnName; String result; columnName = (String)searchBox.getSelectedItem(); item = searchField.getText().trim(); String tableName = "employee"; if(item == null || item.equals("")){ System.out.println("No Text entered"); }else{ try { result = sql.retrieve_From_Database(columnName, tableName, item); System.out.println(result); } catch (SQLException e1) { sql.displayErrors(e1); }
    Here is the code for the retrieve_From_Database function.
    protected String retrieve_From_Database(String columnName, String tableName, String item) throws SQLException{ ResultSet rs = null; Statement sm = null; sm = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY); rs = sm.executeQuery("select * from " + tableName + " where " + columnName + " = " + item); result = rs.getString(columnName); if(result == null){ System.out.println("Error in retrieve"); return new String("No results in DB"); }else{ System.out.println(result); return result; } }
    When I run the first code I get an error of SQL Exception: Unknown column 'anthony' in 'where clause'. But yet when I run the query of
    Select * from employee where FirstName = 'anthony'
    within the mysql commandline I get the proper result. So my question is why when running this in the command line do I get the proper result but when running the code I do not?

    jo**** wrote:
    Hi. The problem is clear in the original post. The OP is trying to use PreparedStatement
    parameters to fill out general portions of the SQL query, instead of only data values.
    He is hoping to put in a column name. That will never work. Only data values are settable.
    HTH,
    Joe WeinsteinActually, no. There's no PreparedStatement there at all. It appears that his problem is that, while the working query entered directly in the client is
    Select * from employee where FirstName = 'anthony'the query he's constructing in his code is
    Select * from employee where FirstName = anthonySince there are no quotes around anthony, it's treated as a column name.
    If he had properly used PreparedStatment as suggested in reply 1, that would not be an issue. My guess, however, is that when he claims he's using PS, it's as Tolls suggested a couple of posts ago--he's simply replacing the Statement with a PreparedStatement, but not using the parameters as suggested.
    The wrong thing for OP to do at this point is see my above comment about the quotes and explicitly add them in the query string. The right thing to do, of course, is to actually use PS's parameters.
    Edited by: jverd on Oct 11, 2010 10:08 AM

  • Selecting only one row from a query

    Hi,
    I am using database version 10.2.0.4.0
    I have 2 tables:
    artist(artistid, artistname, titleid)
    trans(transid, datesold, salesprice, titleid, artistid)
    This is what i used and got the below results.
    SELECT max(worksold) AS mostworksold
    FROM (
    SELECT artistname, COUNT(t.artistid) AS worksold
    FROM table.artist a, table.trans t
    WHERE a.artistid = t.artistid
    GROUP BY artistname
    MOSTWORKSOLD
    12
    However I also want to show the artist name who sold the most work. So i added artist name in the select, but the result came out very different.
    SELECT artistname, max(worksold) AS mostworksold
    FROM (
    SELECT artistname, COUNT(t.artistid) AS worksold
    FROM table.artist a, table.trans t
    WHERE a.artistid = t.artistid
    GROUP BY artistname
    group by artistname;
    ARTISTNAME MOSTWORKSOLD
    John 3
    Mary 4
    Alvin 9
    Trevor 5
    Jess 12
    What should I do to make it show only this?
    ARTISTNAME MOSTWORKSOLD
    Jess 12
    Regards,
    Keith
    Edited by: 963214 on Oct 5, 2012 10:12 AM
    Edited by: 963214 on Oct 5, 2012 10:40 AM

    try this... hope this helps...
    with xx as(
      select '1' as aid,'john' as anm from dual union all
      select '2' as aid,'mary' as anm from dual union all
      select '3' as aid,'alvin' as anm from dual union all
      select '4' as aid,'trevor' as anm from dual union all
      select '5' as aid,'jess' as anm from dual
    ), yy as(
      select '1' aid from dual union all
      select '2' aid from dual union all
      select '2' aid from dual union all
      select '3' aid from dual union all
      select '3' aid from dual union all
      select '3' aid from dual union all
      select '4' aid from dual union all
      select '4' aid from dual union all
      select '4' aid from dual union all
      select '4' aid from dual union all
      select '4' aid from dual union all
      select '5' aid from dual
    select x.* from
    (SELECT a.anm as nm, COUNT(t.aid) AS worksold
    FROM xx a, yy t
    WHERE a.aid = t.aid
    GROUP BY anm
    order by worksold desc) x
    where rownum = 1; gives
    trevor     5In 2 ^nd^ table, i've considered only 1 column which is actually used. Rest columns are unessential.
    Ranit B.
    Edited by: ranit B on Oct 6, 2012 12:20 AM

  • How to select x numbered row from two tables

    Hi,
    I have one performance problem...
    Here is sample scenario...
    TableA
    A1 A2 A3
    a1     a12     a13
    a2     a22     a23
    a3     a32     a33
    TableB
    B1     B2     B3
    b1     b12     b13
    b2     b22     b23
    I want result like
    A1     B1     A2     B2
    a1     b1     a12     b12
    a2     b2     a22     b22
    I have written it like
    select
    A1,
    B1,
    A2,
    B2
    from
    (select A1, A2, rownum rnA from TableA) a,
    (select B1, B2, rownum rnB from TableB) b
    where rnA = rnB
    but suppose TableA has 2500000 rows and
    TableB has 500 rows then for 500 rows I have to
    wait for all 2500000 rows scanning.
    Is there any smart solution..?
    I have created indexes for on columns A1, (A1,A2,A3), B1, (B1,B2,B3).
    Curious:)
    Rushang Kansara
    Message was edited by:
    Rushang Kansara

    Here is explain plan
    SELECT STATEMENT, GOAL = FIRST_ROWS               Cost=5     Cardinality=67     Bytes=3618
    HASH JOIN               Cost=5     Cardinality=67     Bytes=3618
    VIEW     Object owner=SFMFG          Cost=2     Cardinality=82     Bytes=2214
    COUNT                         
    TABLE ACCESS FULL     Object owner=SFMFG     Object name=TABLEA     Cost=2     Cardinality=82     Bytes=1148
    VIEW     Object owner=SFMFG          Cost=2     Cardinality=82     Bytes=2214
    COUNT                         
    TABLE ACCESS FULL     Object owner=SFMFG     Object name=TABLEB     Cost=2     Cardinality=82     Bytes=1148
    New to sql tunning Here why cardinality goes to 67 and cost to 5???
    Thank you for your time.. :)

  • Random selection of rows from a 2D array then subset both the rows that were selected and those that were not. Please see message below.

    For example, I have a 2D array with 46 rows and 400 columns. I would like to randomly select 46 data rows from the 2D array. By doing the random selection it means that not all individual 46 rows will be selected some rows may appear more than once as there may be some duplicates or triplicates in the random selection. The importan thing is that we will have randomly selected 46 rows of data (no matter that some rows appear more than once). Then I would like to subset these randomly selected 46 data rows (some which will be duplicated, or triplicated, etc.) and then also find and subset the rows that were not selected. Does this make sense? Then i would like to do this say 10 times for this data set. So that then I will have 2 by 10 data sets: the first 10 each with 46 rows and the other 10 with n rows depending on how many WERE NOT randomly selected. i hope that my explanation is clear. I am relatively new to Labview. It is really great so I am getting better! If anyone can help me with this problems it will be great. RVR

    Start by generating randon #s between 0 and 45. Run a for loop X times and in it use the random function, multiply the result by X and round down (-infinity). You can make this into a subVI, which you can reuse later. In the same loop, or in a different one, use Index Array to extract the rows which were selected (wiring the result out of the loop with auto indexing causes it to be rebuilt into a 2D array).
    One possible solution for the second part would be to go over the array of randomly generated numbers in a for loop and use Search 1D Array to find each of the numbers (i). If you get -1, it means the row wasn't selected and you can extract it.
    I hope this puts you on the right path. If not, don't be afraid to ask more.
    To learn more about LV, I suggest you read the LabVIEW user manual. Also, try searching this site and google for LabVIEW tutorials. Here and here are a couple you can start with. You can also contact your local NI office and join one of their courses.
    In addition, I suggest you read the LabVIEW style guide.
    Try to take over the world!

  • How to delete a selected row from datagrid and how to create a datagrid popup

    hi friends,
                  I am new to flex.i am doing a flex4 application,i need help for this.
                i am having a data grid with columns.i have two questions.
               Ques 1: when  i selected a partiuclar row from a datagrid and click delete button  means that record will delete from the datagrid and DTO from the cloud  tables also.
                Ques 2: when i save  the data grid values using save button means that data will store in  respective cloud DTO which is related to the datagrid,
                     My requirement is i am using a search button when i click the search  button it will show a datagrid that datagrid will contain the previous  datagrid datas which is saved in the cloud.
    REQUIREMENT example: first screen:           i am using with data grid 3 columns (Student Roll number ,Student Name,Student pecentage)---->save--->data will store in cloud DTO.
    Second screen:                search button ----> it need show  datagrid popup.it will have data which we saved in the first screen with same columns(Student Roll number ,Student Name,Student pecentage).
    This is my requirement.
    Any suggession welcome.
    Thanks in advance.
    B.Venkatesan

    Lets break the problem statement in multiple steps
    1. We need a way to know the selection on all rows.
    2. We need the association of the checkBox with the data
    The  solution is to use a arrayCollection/array that holds all the instances  created for checkbox.This collection should be a property of component  containing the datagrid. We need to use a custom component  implementation or inline ItemRenderer. The way you have used is called  dropinItemRenderer. Preferaly use custom component implementation and  add the instance to the arrayCollection at CreationComplete. Make sure  you use addItemAt so that you add the instance in the same row as the  data. To get rowIndex the custom Checkbox should implement  IDropInListItemRenderer. You could iterate this collection to check all  the instances that are checked.
    Note: This is the approach considering your dataprovider doesnt have a selection field.
    Nishant

  • How to delete a Selected row from datagrid and how to create a datagrid popup with saved values

    hi friends,
                  I am new to flex.i am doing a flex4 application,i need help for this.
                i am having a data grid with columns.i have two questions.
               Ques 1: when i selected a partiuclar row from a datagrid and click delete button means that record will delete from the datagrid and DTO from the cloud tables also.
                Ques 2: when i save the data grid values using save button means that data will store in respective cloud DTO which is related to the datagrid,
                    My requirement is i am using a search button when i click the search button it will show a datagrid that datagrid will contain the previous datagrid datas which is saved in the cloud.
    REQUIREMENT example: first screen: i am using with data grid 3 columns (Student Roll number ,Student Name,Student pecentage)---->save--->data will store in cloud DTO.
    Second screen: search button ----> it need show  datagrid popup.it will have data which we saved in the first screen with same columns(Student Roll number ,Student Name,Student pecentage).
    This is my requirement.
    Any suggession welcome.
    Thanks in advance.
    B.Venkatesan

    Lets break the problem statement in multiple steps
    1. We need a way to know the selection on all rows.
    2. We need the association of the checkBox with the data
    The  solution is to use a arrayCollection/array that holds all the instances  created for checkbox.This collection should be a property of component  containing the datagrid. We need to use a custom component  implementation or inline ItemRenderer. The way you have used is called  dropinItemRenderer. Preferaly use custom component implementation and  add the instance to the arrayCollection at CreationComplete. Make sure  you use addItemAt so that you add the instance in the same row as the  data. To get rowIndex the custom Checkbox should implement  IDropInListItemRenderer. You could iterate this collection to check all  the instances that are checked.
    Note: This is the approach considering your dataprovider doesnt have a selection field.
    Nishant

  • How do I select a row from the middle of a recordset?

    UserID QuestionID Answered
    10 9 N
    10 8 N
    10 7 N
    10 6 N
    10 5 Y
    10 4 Y
    10 1 Y
    From the table sorted by QuestionID DESC, how do I select the first row from the bottom going up with Answered value equal to 'N'?
    Which in the example above would be:
    10 6 N
    I need to select this row and get the QuestionID value equal to 6.
    Right now I have:
    select QuestionID
    from tblMap
    where Answered = 'N'
    and ROWNUM = 1
    order by QuestionID ASC;
    This always the top most row, which would be:
    10 9 N

    Here i used DUAL to generate a list of numbers for me.
    ME_XE?select *
      2  from
      3  (
      4     select row_number() over (order by col1 desc) as rn, count(*) over() as cnt, col1
      5     from
      6     (
      7        select level as col1 from dual connect by level <= 9
      8     )
      9  )
    10  where ceil(cnt/2) = rn
    11  /
                    RN                CNT               COL1
                     5                  9                  5
    1 row selected.
    Elapsed: 00:00:00.07
    ME_XE?Edited by: Tubby on Jul 8, 2009 1:47 PM
    Seems i misread the question :)

  • How to save the  selected rows from Advance table into database

    Hi
    I have requirement like..
    In custom page , Manager Search the Candidates and selects the candidate ROWS from advance table.
    The reqt is how to save the selected multiple rows into the database.

    hi Reetesh,
    In Custom page
    Supoose the Recruiter Search is for Position Finance Mangager , it retrieves 100 rows , out of which Recruiter select 10 rows .
    So in Such scenario how to save this 10 rows against Recruiter
    , i mean , Is i need to create custom table, to save Recruiter , these selected 10 rows.
    I hope u understand my question

  • Returning a subset of rows through a ResultSet WITHOUT rownum?

    I am trying to figure out a way to get a subset of rows from a ResultSet (or ResultSet equivalent) without using rownum and without sending all the rows before the requested row over the wire.
    My problem is this: I am not in control of the SQL that is sent to the database. It is autogenerated by a third party tool (TOPLink). Therefore using the rownum solution isn't practical. My steps of operation are:
    1. Get SQL from TOPLink
    2. Pass SQL through a Statement
    3. Get resulting ResultSet
    At this point, I want to say, "Mr. ResultSet, I only want rows 200-250." And I then want Mr. ResultSet to fetch only rows 200 to 250, and no others. I don't want to see rows 1 to 199 coming over the wire.
    Anyone have any ideas? Is this possible at all? Also, if there's a way to do this through the TOPLink mechanisms (ScrollableCursors and ReportQuery objects and whatnot), please do let me know. I have tried using the TOPLink facilities, and sure enough rows 1 to 199 flow across the network.
    Thanks,
    Michael Allen
    [email protected]

    Hi Michael,
    Is there some sort of selection criteria in which you could use return the required 200-250 rows of data? If so, I would embed that into the TopLink query.
    Another option is using the ORDER BY operator. Without order, constructing a query of elements 200-250 twice would not guarentee that they would be the same elements.
    You can also construct your own SQL statement and execute it directly on a TopLink session.
    Darren Melanson
    Strategic Implementation Consultant
    Oracle Canada.
    I am trying to figure out a way to get a subset of rows from a ResultSet (or ResultSet equivalent) without using rownum and without sending all the rows before the requested row over the wire.
    My problem is this: I am not in control of the SQL that is sent to the database. It is autogenerated by a third party tool (TOPLink). Therefore using the rownum solution isn't practical. My steps of operation are:
    1. Get SQL from TOPLink
    2. Pass SQL through a Statement
    3. Get resulting ResultSet
    At this point, I want to say, "Mr. ResultSet, I only want rows 200-250." And I then want Mr. ResultSet to fetch only rows 200 to 250, and no others. I don't want to see rows 1 to 199 coming over the wire.
    Anyone have any ideas? Is this possible at all? Also, if there's a way to do this through the TOPLink mechanisms (ScrollableCursors and ReportQuery objects and whatnot), please do let me know. I have tried using the TOPLink facilities, and sure enough rows 1 to 199 flow across the network.
    Thanks,
    Michael Allen
    [email protected]

Maybe you are looking for

  • Very slow performance of MacBook Pro

    Problem description: MacBook Pro became unusually slow. I can’t open / play videos. It takes **** of time to open normal excel / word applications. Starting also takes took toooo much time. Appreciate support to resolve the issue. EtreCheck version:

  • TDS While making outgoing payment

    Hi, How to deduct TDS while making outgoing payments? Pls help in this regards Thanks & Regards Suresh Kannan Edited by: Marc Riar on Jan 31, 2008 2:18 PM Edited by: Marc Riar on Feb 15, 2008 9:36 AM

  • Reader X fillable pdfs Cyrillic font print problem.

    Hello, I have a task recently, to make some fillable pdf forms. This was not a problem, but the problem occur when I try to print them with Adobe Reader X. The problem is very strange, so excuse me if I'm not making myself much clear. So here goes: I

  • MacBook Pro w/ Retina Display Shipping Times

    Hi, Now that the rMBP's dispatch times have been reduced to 2-4 business days, I was wondering how long I can expect to wait before I get my hands on my brand new rMBP? I ordered it on Friday 31st August so it's been 2 business days already. I have c

  • SQL 2012 Installation Error

    Good Day I am trying to install SQL 2012. during the installation process it halts and I receive the following message: TITLE: SQL Server Setup failure. SQL Server Setup has encountered the following error: Setup encountered a failure while running j