How to get top 3 record from aggregated column

Hello,
i have a simple query which return all student in class with total marks. now i want to select top 3 student whose score is maximum. simple top three position. how can i use rank function here? or any other way to do that
select  st.sti_roll_no  ,st.sti_name , sum(rd.rd_obt_marks) as  mycol  from rd_result_detail rd , rm_result_master rm, sti_student_info st
where rm.rm_result_id = rd.rd_result_id
and st.sti_roll_no= rd.rd_student_id
--and  rd.rd_student_id = 'MBP10293'
and rm.rm_semester = 3
and rm_session = 2009
and rm_batch= 3
and rm.rm_exam_type ='FINAL TERM'
and rm.rm_class_id = 'MBA'
group by st.sti_name, st.sti_roll_no
order by st.sti_roll_no;

Not sure!!!!!!!!!!!!!
with t as
(select  st.sti_roll_no  ,st.sti_name , sum(rd.rd_obt_marks) as  mycol  from rd_result_detail rd , rm_result_master rm, sti_student_info st
where rm.rm_result_id = rd.rd_result_id
and st.sti_roll_no= rd.rd_student_id
--and  rd.rd_student_id = 'MBP10293'
and rm.rm_semester = 3
and rm_session = 2009
and rm_batch= 3
and rm.rm_exam_type ='FINAL TERM'
and rm.rm_class_id = 'MBA'
group by st.sti_name, st.sti_roll_no
order by st.sti_roll_no)
select sti_roll_no  ,sti_name,mycol,dense_rank()over(order by mycol desc) rnk
from t
--where rnk<=3
SQL> ed
Wrote file afiedt.buf
  1  select e.* from (select empno,ename,sal,dense_rank()over(order by sal desc) rnk
  2* from emp)e where rnk<=3
SQL> /
     EMPNO ENAME             SAL        RNK
      7839 KING             5000          1
      7788 SCOTT            3000          2
      7902 FORD             3000          2
      7566 JONES            2975          3

Similar Messages

  • How to get multiple records from internal table through BDC

    PERFORM DYNPRO USING:
      'X'  'SAPMM61L'  '0500',
      ' '  'BDC_OKCODE'  '=NEWC',
      'X'  'SAPMM61L'  '0500',
      ' '  'BDC_CURSOR'  'PLPTU-PLWRK(01)',
      ' '  'BDC_OKCODE'  '=TAKE',
      ' '  'PLPTU-PLWRK(01)' '2531'. (2531 is a plant)
    This is the recording used to get plant via BDC of MS31.
    Using this code i can get only single plant...
    If i want to get multiple plants from an internal table,how i can change this code?
    Since it is a recording i cant put this code in LOOP..ENDLOOP.
    Suggest any method for doing this....
    Awaiting for ur reply...

    Hi,
    While recording also record the scroll down button.
    The you can place different plant in the BDC using loop and endloop
    Regards
    Arun

  • How to get Scavenged Records from Windows DNS Server uisng WMI API Call?

    Hi Guys,
    I'm facing one problem to find below things,
    DNS Server have list of zones and each zones may have DNS Records. DNS Server provides an option set scavenging interval on server or in zone level.
    Once records are old the server automatically apply scavenging process to remove that record.
    I need to get DNS Records that are scavenged and timestamp using WMI Call?
    sharavanna

    The DNS log has this information.  Just extract it from the log.
    A scavenged record does not exisit when it is scavenged so it cannot be read from the DNS server.  It has been deleted.
    ¯\_(ツ)_/¯

  • How to get missing records from one table

    I have one table with many records in the table. Each time a record is entered the date the record was entered is also saved in the table.
    I need a query that will find all the missing records in the table.
    so if I have in my table:
    ID          Date          Location
    1           4/1/2015        bld1
    2           4/2/2015        bld1
    3           4/4/2015        bld1
    I want to run a query like
    Select Date, Location FROM [table] WHERE (Date Between '4/1/2015' and '4/4/2015') and (Location = bld1)
    WHERE Date not in
    (Select Date, Location FROM [table])
    and the results would be:
    4/3/2015   bld1
    Thank you

    Do you have a table with all possible dates in it?  You can do a left join from that to your above mentioned table where the right side of the join is null.  If you don't have a table with all possible dates you could user a numbers table.
    Below is one way to achieve what you want with a numbers table...
    DECLARE @Table table (ID Int, DateField Date, Location VarChar(4))
    DECLARE @RunDate datetime
    SET @RunDate=GETDATE()
    IF OBJECT_ID('dbo.Numbers') IS NOT NULL 
    DROP TABLE NUMBERS
    SELECT TOP 10000 IDENTITY(int,1,1) AS Number
       into Numbers
        FROM sys.objects s1
        CROSS JOIN sys.objects s2
    ALTER TABLE Numbers ADD CONSTRAINT PK_Numbers PRIMARY KEY CLUSTERED (Number)
    INSERT INTO @Table (ID, DateField, Location)
    VALUES ('1','20150401','bld1')
    ,('1','20150402','bld1')
    ,('1','20150404','bld1');
    WITH AllDates
    as
    SELECT DATEADD(dd,N.Number,D.StartDate) as Dates
    FROM Numbers N
    cross apply (SELECT CAST('20150101' as Date) as StartDate) as D
    select * 
    from AllDates AD
    left join @Table T on AD.Dates = T.DateField
    where ad.Dates between '20150401' and '20150404'
    AND T.ID IS NULL
    LucasF

  • How to get a value from a column inside a table

    Hi,
    I have got the following problem. I have got a table with some data inside. And a new column, which is not in the dataprovider. Now i search for an opportunity to go through the rows of the table and check the value of this column. I cant do this with the dataprovider or the rowset. My question is now how can i do this? The table object doesnt seem to have a corresponding method.
    Thanks in advance for help
    Acinonyx

    this is some code you can use (based on Winston's and others' tips):
    put this in you page bean:
    private HashSet selectedRows = new HashSet();
    public boolean isSelected() {
    TableRowDataProvider trdp = (TableRowDataProvider)getBean("currentRow");
    if (trdp == null) {
    return false;
    RowKey rowKey = trdp.getTableRow();
    if (this.selectedRows.contains(rowKey.getRowId()))
    return true;
    else
    return false;
    public void setSelected(boolean b) {
    TableRowDataProvider trdp = (TableRowDataProvider)getBean("currentRow");
    RowKey rowKey = trdp.getTableRow();
    if (checkbox1.isChecked()) {
    this.selectedRows.add(rowKey.getRowId());
    Object v = this.t_fotoDataProvider.getValue("fieldName", rowKey);
    } else {
    this.selectedRows.remove(rowKey.getRowId());
    and then bind the "selected" property of the checkbox column to the "selected" property of the page bean.
    Now, eveytime the page is submitted, you can do something useful, for example, in the setSelected() method (the row that starts with Object v = ... get's the value of some field corresponding to the checked row)
    Mauro

  • How to get highest salary from salary column in sharepoint list

    Hello,
    I have one custom list in which there is one salary column so I want to get the highest salary.Can we do this OOTB or by using custom code by adding webpart(using CAML query).
    Thanks,

    http://stackoverflow.com/questions/516073/max-query-using-caml
    <Query>
    <OrderBy>
    <FieldRef Name="particularcolumn" Ascending="FALSE" />
    </OrderBy>
    </Query>
    http://stackoverflow.com/questions/8383616/caml-query-on-a-sharepoint-2010-list
    http://sharepoint.stackexchange.com/questions/16955/how-to-select-max-field-in-caml-query
    If this helped you resolve your issue, please mark it Answered

  • How to Getting 10lack records from 2 tables and share  into 10 tables

    Hi Experts,
    i have some special requirement about counting records before we we procees them in to intenal table.
    here is the sample code .
    **Needed to get users for ref users data
    DATA: BEGIN OF gt_usr02 OCCURS 0,
            bname LIKE usr02-bname,
          END OF gt_usr02.
    DATA:g_wa_usr02 LIKE LINE OF gt_usr02.
    **Needed To get reference users data
    DATA: BEGIN OF gt_usrefus OCCURS 0,
            bname LIKE usrefus-bname,
            refuser LIKE usrefus-refuser,
            END OF gt_usrefus.
    DATA:g_wa_usrefus LIKE LINE OF gt_usrefus.
    SELECTION-SCREEN :BEGIN OF BLOCK blk1 WITH FRAME TITLE text-000.
    SELECT-OPTIONS : s_user FOR usr02-bname.
    SELECTION-SCREEN :END OF BLOCK blk1.
    START-OF-SELECTION.
    REFRESH:gt_usr02,gt_usrefus.
    CLEAR:gt_usr02,gt_usrefus
    CLEAR:g_wa_usr02,g_wa_usrefus ,
    SELECT bname FROM usr02 INTO TABLE
           gt_usr02 WHERE bname IN s_user. "say suppose "*" in s_user
    1.Here i need to get no of records befor we are getting data from this select statement
    basically i need to know the no of records (like count (sy-dbcnt) with same condition like below.
    IF NOT gt_usr02 IS INITIAL.
        SELECT bname refuser FROM usrefus INTO TABLE  gt_usrefus
         FOR ALL ENTRIES IN  gt_usr02
        WHERE bname =  gt_usr02-bname AND refuser <> space.
      ENDIF.
    2.if i found no of records based on that  i have to broke those records into diff tables
    say i found 10,000 records ,that time i have spilt those 10,000 records into 10 tables(Similar strcture like table gt_usrefus ) with 1000 records each .
    Can you help us.this requirement is for avoiding memory issues.

    Hi nagraju102,
    - please try to post code formatted as code
    - splitting a table of 10000 records into 10 tables of 1000 records will use not less memory at all, even a little bit more for the administrative overhead
    - the numer of lines in an internal table can  determinde used system function lines( itab )
    - you can create an internal table of references and then create any number of internal tables,
    data:
      lt_tabref type table of ref to data.
    field-symbols:
      <table> type  table,
      <tabref> type ref to data.
    DO 10 TIMES.
      append initial line to lt_tabref assigning <tabref>.
      create data <tabref> type table of usrefus.
      assign <tabref>->* to <table>.
      perform fill_table changing  <table>."fill this table as you prefer
    ENDDO.
    Here you have 10 internal tables with USREFUS structure.
    Regards,
    Clemens

  • How to get Multiple records from functions

    Hi Everyone
    Im new to this stuff. Im trying  through JCO. As far as the single recordsets like data of customer or article are concerned i get it through an array.
    But i wanted to retrieve
    1- Whole tables like (all articles)
    2- Selected articles. or Customer order details (articles in PO)
    That means multiple records in one go.
    Later on ill display it in JTables.
    Like for the past three days i was googling around. Thought like this ones not for my stomach. Came across this Forum. Thought its worth posting a request.
    Here is the code
    public String[] KSearch(String Knr) throws Exception{
                            String[] Result=new String[11];
                            IFunctionTemplate ftemplate= Con.repository.getFunctionTemplate("SucheKUNDE");
                            if (ftemplate == null)
                                    throw new Exception("Funktionstemplate nicht gefunden");
                            JCO.Function function = ftemplate.getFunction();
                            JCO.ParameterList input = function.getImportParameterList();
                            input.setValue(Knr,"FieldName");
                       JCO.Client client = JCO.getClient(Con.conPoolId);
                       client.execute(function);
                       JCO.ParameterList output = function.getExportParameterList();
                       Result[0]=output.getString("NAME");
                       Result[1]=output.getString("VORNAME");
                       Result[2]=output.getString("GDATE");
                       Result[3]=output.getString("TELEFON");
                       Result[4]=output.getString("MAIL");
                       Result[5]=output.getString("STRASSE");
                       Result[6]=output.getString("PLZ");
                       Result[7]=output.getString("ORT");
                       Result[8]=output.getString("KONTO");
                       Result[9]=output.getString("INSTITUT");
                       Result[10]=output.getString("BLZ");
                                                                                    JCO.releaseClient(client);
                       return Result;
    now instead of a single record what if im expecting a number of records, like what if i need customer over 25. Which means more than one. I have to get in tabular format so that i can display it in JTables.
    Hope it a bit illustrative.
    Regards
    Edited by: Aaron Maleck on Jan 5, 2008 7:35 AM

    public String[] KSearch(String Knr) throws Exception{
    String[] Result=new String11;
    IFunctionTemplate ftemplate= Con.repository.getFunctionTemplate("SucheKUNDE");
    if (ftemplate == null)
    throw new Exception("Funktionstemplate nicht gefunden");
    JCO.Function function = ftemplate.getFunction();
    JCO.ParameterList input = function.getImportParameterList();
    input.setValue(Knr,"FieldName");
    JCO.Client client = JCO.getClient(Con.conPoolId);
    client.execute(function);
    // Maybe here you should use a JCO.Table Class to get the //ExportParameters such as
    JCO.Table output = function.getTableParameterList().getTable( "tabelname" );
    // so you can use setRow() Function to get the information of the //relevant record. such as the 3. Costum
    output.setRow(3);// Record Number
    Result[0]=output.getString("NAME");
    Result[1]=output.getString("VORNAME");
    Result[2]=output.getString("GDATE");
    Result[3]=output.getString("TELEFON");
    Result[4]=output.getString("MAIL");
    Result[5]=output.getString("STRASSE");
    Result[6]=output.getString("PLZ");
    Result[7]=output.getString("ORT");
    Result[8]=output.getString("KONTO");
    Result[9]=output.getString("INSTITUT");
    Result10=output.getString("BLZ");
    JCO.releaseClient(client);
    return Result;
    &#65321;am not sure that works. But you can try it. and reply me to tell if it really works as i think.
    Hope helps.
    Amao

  • How to get  selected records from an ALV  Grid in some other internal table

    I am using a standard SAP program (RFKKMA02) in a Z program. Now i want to select some rows in ALV and after doing some modification, i want to store those records in some other internal table. I am not using OO concept.
    Thanks in advance.

    u create first internal table of structur of fields that u want to copy and then move taht values to internal table

  • How to get all records from department wise having max salary?

    i have a Employee table which consist
    id | name | dept_id | Salary
    1 A 1 20
    2 B 1 25
    3 C 2 30
    4 D 2 25
    Search max salary department wise with all details like below result.
    id | name | dept_id | Salary
    2 B 1 25
    3 C 2 30

    Could you try this?
    create table employee (id int, name varchar(10), dept_id int, salary int)
    insert into employee values (1,'A',1,20)
    insert into employee values (2,'B',1,25)
    insert into employee values (3,'C',2,30)
    insert into employee values (4,'D',2,25)
    select e.* from employee e inner join
    (select a.dept_id , max (a.salary) as 'max_salary' from employee a
    group by a.dept_id ) b
    on e.dept_id = b.dept_id
    and e.salary = b.max_salary
    order by e.dept_id
    Regards, Ashwin Menon My Blog - http:\\sqllearnings.com

  • How get all record from master and matching record from detail

    hi master
    sir i have master detail table
    i have many record in master table but some record in detail table how i get
    all record from master and matching record from detail
    such as
    select m.accid,m.title,d.dr,d.cr from master m, detail d where m.accid=d.accid
    this query not work that get only related record i need all record from master
    please give me idea
    thanking you
    aamir

    hi master
    sir i have master detail table
    i have many record in master table but some record in
    detail table how i get
    all record from master and matching record from
    detail
    such as
    select m.accid,m.title,d.dr,d.cr from master m,
    detail d where m.accid=d.accid
    this query not work that get only related record i
    need all record from master
    please give me idea
    thanking you
    aamir
    select m.accid,m.title,d.dr,d.cr
    from master m, detail d
    where m.accid=d.accid (+)The outer join operator (+) will get you all the details from master and any details from the detail if they exist, but the master details will still be got even if there are not details.
    Note: Oracle 10g now supports ANSI standard outer joins as in:
    select m.accid,m.title,d.dr,d.cr
    from master m LEFT OUTER JOIN detail d on m.accid=d.accid

  • Getting last record from mseg

    Hi,
    Can any one tell me how to get last record from any db(MSEG) table?
    reward guaranteed
    kaki

    Hello,
    Entries have no "natural order" within a database, apart from the primary key. If you need the "last entry" then you need to know what defines the last entry. If the last entry is the one with the highest year (MJAHR) the you could select it like this:
    data: ls_mseg type mseg.
    select * from mseg into ls_mseg.
        where bwart = 321
          and ebeln = 400000005
          and mjahr = ( select max( mjahr ) from mseg
                          where bwart = 321
                            and ebeln = 400000005 ).
    "process result in ls_mseg
    endselect.
    Note: This is a loop because there might be more than one matching entry.
    best regards
    Roland

  • How to get top 10 records for each option in table prompt?

    Hi,
    I have created one report in which my requirement is to get top 10 highest salaries for each departments. I have created one table prompt which contains the names of all departments. On the salary column I have applied one filter i.e. TOP 10. Currently I am having 3 departments. I want to show the top 10 salaries for each department, but I am getting top 3 from first, 4 from second and 3 from third.They are calculating top 10 salaries based on all departments, not on individual department. How can I get top 10 salaries for each department?

    Hi,
    Use TopN function in your column formula.
    Ex: TOPN("Sales ,5 BY department)
    Thanks,
    Satya

  • How to get latest record on top of the result list

    Hi Gurus,
    How to get latest record on top of the result list when you open the record.
    saved data method in BT120H_CPL of OverView page and result list in ICCMP_INBOX.
    Regards,
    Ravi

    Hi
    Try sort descending by on fileld "changed at ".
    manipulate the sort depends on your requirement
    Regards
    Logu

  • How can I select random records from one column

    How can I random select 400 records from a column contains more than 500,000 records? And how long will it take in oracle? Thanks.

    here is one option: (just change 5 to suit your needs...)
    SQL>select * from (
      2  select object_name
      3  from all_objects
      4  order by dbms_random.random
      5  ) where rownum < 5
      6  /
    OBJECT_NAME
    UTL_SYS_COMPRESS
    GV_$LOG_HISTORY
    GV_$LOGMNR_LOGS
    WWV_FLOW_THEME_7
    SQL>/
    OBJECT_NAME
    WWV_FLOW_UPGRADE_REPORT
    WRI$_ADV_SQLT_STATISTICS_PK
    V_$DATABASE
    GV_$SERVICEMETRIC
    SQL>/
    OBJECT_NAME
    WWV_FLOW_CREATE_FLOW_API
    WRH$_SERVICE_WAIT_CLASS_BL
    EXU8SNAPL
    GV$SERVICEMETRIC_HISTORY
    SQL>                well, regarding how long will it take... it depends from lots of variables...
    Cheers,
    Andrea

Maybe you are looking for

  • Uploading on Facebook

    When I uploaded pictures on Facebook they get darker. I've tried to download java again but it didnt work. I use Firefox and Safari but the problem is the same either way. I found this when I was searching around my Mac... http://i54.tinypic.com/2wfk

  • How can i set automatic change of user status(for WBS)?

    Hi, Everytime when i create invoice for customer shipment using transaction code VF01, i need to change user status of WBS element manually in project to INTG in order to recognize the revenue. Is there any possiblity to change user status of WBS aut

  • Content Management/Item approval

    Hello everybody, now after that I've read a lot in this forum about how to allow users to add items to a region and about applying approval mechanisms, I still don't understand the following: 1.) Is it true that the only way to enable users to add it

  • My photo library now a complete mess... help needed!

    Oh woe is me! I decided to use a referenced library, and used A3 to move all my gathered photos into a Master Library on another drive. First thing that went wrong.... A3 can't tell the difference between JPG and jpg, so I ended up with piles of dupl

  • Adobe CS2 will not work in Leopard

    Did you know *_Adobe CS2 will not work in Leopard?_* I found out the hard way that Leopard doesn't cost $129; It's $729, because CS2 will not work so you need to upgrade to CS3. This is straight from Adobe support (albeit in Manilla). I can find no d