Group by only one column

Hi friends,
I have a create table script as below:
CREATE TABLE GROUPBY_TEST
( NAME VARCHAR2(5),
HIREDATE DATE,
DEPARTMENT VARCHAR2(5),
SALARY NUMBER(5)
Insert script :
INSERT INTO GROUPBY_TEST VALUES ('A','1-JAN-2000','XYZ',1000);
INSERT INTO GROUPBY_TEST VALUES ('A','1-FEB-2000','ABC',5000);
INSERT INTO GROUPBY_TEST VALUES ('A','1-APR-2000','DDD',5000);
INSERT INTO GROUPBY_TEST VALUES ('B','10-JAN-2000','EEE',1000);
INSERT INTO GROUPBY_TEST VALUES ('B','10-FEB-1999','FFF',500);
INSERT INTO GROUPBY_TEST VALUES ('C','15-MAY-2005','GGG',500);
INSERT INTO GROUPBY_TEST VALUES ('C','27-JUN-2003','LLL',10000);
My table data looks like :
SELECT * FROM GROUPBY_TEST;
NAME HIREDATE DEPAR SALARY
A 01-JAN-00 XYZ 1000
A 01-FEB-00 ABC 5000
A 01-APR-00 DDD 5000
B 10-JAN-00 EEE 1000
B 10-FEB-99 FFF 500
C 15-MAY-05 GGG 500
C 27-JUN-03 LLL 10000
7 rows selected.
I want output as:
Name HAREDATE DEPT SAL
A 01-APR-00 DDD 5000
B 10-JAN-00 EEE 1000
C 15-MAY-05 FFF 500
i want to have max(HIREDATE) records group by NAME only and NOT BY DEPARTMENT AND SAL.
When i tried query as below:
select name,max(hiredate),department,salary from groupby_test
group by name,department,salary;
It returned all 7 records which i dont want
can some one help me getting neccessary output ?
Thanks a lot
JP

A way :
SQL> select name, hiredate, department, salary
  2  from   (select a.*, dense_rank() over (partition by name order by hiredate desc) dr from groupby_test a)
  3  where  dr = 1;
NAME  HIREDATE DEPAR     SALARY
A     01/04/00 DDD         5000
B     10/01/00 EEE         1000
C     15/05/05 GGG          500
SQL> An other way without subquery :
SQL> select name,
  2         max(hiredate) keep (dense_rank last order by hiredate) hiredate,
  3         max(department) keep (dense_rank last order by hiredate) department,
  4         max(salary) keep (dense_rank last order by hiredate) salary
  5  from   groupby_test
  6  group by name;
NAME  HIREDATE DEPAR     SALARY
A     01/04/00 DDD         5000
B     10/01/00 EEE         1000
C     15/05/05 GGG          500
SQL> Nicolas.
Ok, too slow, and too late for me now...
Message was edited by:
N. Gasparotto

Similar Messages

  • How do I group by only one column in a SELECT statement?

    Hi everyone,
    Here is my novice question:
    I would like to run a query where I select (display) several columns from my table, yet group (categorize) by one of these columns.
    For example:
    SELECT A, B, COUNT(A)
    FROM TableX
    GROUP BY A
    I realize now that this is not valid. My first question is why? Doesn't it make sense that you would want to group by only one of the columns? To me, it seems natural that you would most often want to categorize by one attribute, which is why it seems odd that this is not valid. I realize that I can remove column B, but I do want to display that info. I could also change the last statement to GROUP BY A, B to avoid errors, but this will also not display what I am looking for.
    In addition to understanding why Oracle is set up this way, I guess I also need to know how I can legally accomplish this query, grouping by A but also displaying the values of B.
    Thank you very much for your help!
    Holly

    Hi everyone,
    Thank you for your responses... very interesting and useful. Since I came across inline views in my reading, I tried the approach recommended by g feng, although I am eager to try the other approaches too.
    I ended up using an inner join simply to get more descriptive info. on the column that was being counted. With Y representing this second table, Y.B being the column containing the descriptive info., and A being the common key between X and Y, here is the simple code I came up with.
    SELECT Y.B, V.*
    FROM Y,
    SELECT A AV, COUNT (*)
    FROM X
    GROUP BY A
    ) V
    WHERE V.AV = Y.A
    Does this seem correct... anything I need to watch out for?
    Thanks again to everyone for your help!!
    Holly

  • Set filter for only one column in tableview

    Hi
    i am using in MVC a htmlb:tableview with filter in only one column of 8.
    This is all working fine, except that the user can enter a searchsting in the filterfield for all columns, but in handle_event (of the controller) ; i only react to a text in the filterfield of column 4 and ignore all other filtertext , which were maybe entered in the other columns.
    My question:
    how can i  enter the filter only for one column, in a way that the user cannot enter any text in the filterfield of the other columns, only in column 4 ?
    my view:
    <htmlb:tableView id             = "requirements"
                     table          = "//model/pdst_reqs"
                     filter         = "APPLICATION"                
                     keyColumn       = "EXTID"
                     iterator        = "<%=model%>"
                     footerVisible   = "FALSE"
                     encode          = "TRUE"
                     visibleRowCount = "<%=model->rowcount%>"
                     width           = "100%"/>
    Best Regards
    Britta

    You can disbale the Filter for the particular column by setting the DISABLE_FILTER in the Iterator method IF_HTMLB_TABLEVIEW_ITERATOR~GET_COLUMN_DEFINITIONS. Here is the sample code
    method IF_HTMLB_TABLEVIEW_ITERATOR~GET_COLUMN_DEFINITIONS .
      CLEAR p_column_definitions.
      CLEAR p_overwrites.
      data tv_column TYPE TABLEVIEWCONTROL.
      tv_column-COLUMNNAME          = 'FLDATE'.
      tv_column-SORT                = 'X'.
      tv_column-EDIT                = 'X'.
      tv_column-ONCELLCLICK         = 'MyCellClick1'.
      tv_column-title               = 'Date '.
      APPEND tv_column TO p_column_definitions.
      CLEAR tv_column.
      tv_column-COLUMNNAME          = 'PRICE'.
      tv_column-horizontalAlignment = 'right'.
      tv_column-verticalAlignment   = 'middle'.
      tv_column-ONCELLCLICK         = 'MyCellClick2'.
      tv_column-title               = 'Currency'. 
      tv_column-EDIT                = 'X'.
      tv_column-DISABLE_FILTER      = 'X'.    " <-------Like this
      APPEND tv_column TO p_column_definitions.
    endmethod.
    Hope this will solve your problem.
    Raja

  • Access for update only one column in table?

    Hi all,
    My need is to grant access for update only one column c1 in table t1.
    I guess I should use view, could you please give me some example? Maybe other ideas?

    Hi,
    You can grant privileges on individual columns.
    GRANT   UPDATE (c1)
    ON      t1
    TO      grantee_name;Look up GRANT in the SQL language manual. Annoyingly, in recent editions of the manual, GRANT is not indexed, but it's in alphabetic order with all the other statements:
    http://docs.oracle.com/cd/E11882_01/server.112/e26088/statements_9013.htm#i2155015

  • EA2: Code is generated for only one column with Domain check constraint.

    I created a Domain with a Value List (Y or N - Yes or No) and used that domain for two columns in the same table. But for only one column (the last one) the check appears in the generated DDL.
    After I enabled the "Use Domain Constraints" both checks appear in the DDL, but one as an inline check constraint and one as an "Alter table add contraint.."
    Once I changed the naming Template for the check constraint, both constraints are generated as an Alter table clause. The inline check constraint is only generated when the name of the constraint (according to the template) is too long. It would be nice if I could choose if I want an inline or a separate check constraint definition.
    Edited by: Roel on Nov 23, 2010 11:55 AM
    Edited by: Roel on Nov 23, 2010 12:02 PM

    I logged ER for that
    Philip

  • CRM ORG is supporting only one sales group to only one sales office,

    Hi Users,
    CRM system is supporting only one sales group to only one  sales office, not supported to multiple sales offices.
    Per ex : Sales Organization     Distribution Channel     Division        South Sales Office     South Sales Group
                                         AJE                                 EX                        BP        S100                            S01
                                         AJE                                 EX                        BP     S101                             S01
                                         AJE                                 EX                        BP     S103                             S01
                                          AJE                                 EX                        BP     S104                             S01
                                         AJE                                 EX                        BP     S105                             S01
    Sales group S01 assigned to sales office S100, but i need to assign my south sales group S01 to different sales offices in South region. in PPOMA_CRM is not supporting for multiple assignment.
    Anyone can provide solution for above issue?

    HI Denic,
    I have got your point, already done all settings for enhanced.
    Myside :
    Under Sales, based on client requirement created as ( N E W S ) regions, under each region made 4 offices.
    in SOUTH : OFFICE 1, OFFICE 2, OFFICE 3, OFFICE 4
    IN NORTH : OFFICE5, OFFICE 6, OFFICE 7, OFFICE 8
    IN EAST :     OFFICE 9, OFFICE 10, OFFICE 11, OFFICE 12
    IN WEST :  OFFICE 13, OFFICE 14, OFFICE 15, OFFICE 16
    *BUT SALES GROUPS MAINTAINED ONLY 4 LIKE SOUTH GROUP, NORTH GROUP, EAST GROUP, WEST GROUP.*
    IN ENHANSED ORG I HAVE MADE UNDER FUNCTION TAB IN PPOMA_CRM
    FOR SALES -
    > ASSIGNED SLS ORG & R/3 DIST CHAN, R/3 DIVI
       UNDER SALES --> SOUTH  ---> ALREADY ORG INHERITED FROM SALES  AND
              UNDER SOUTH  --> OFFICE1 --> IN FUNCTION TAB SALES ORG INHERITED, SALES OFFICE           SELECTED AS OFFICE 1 AND CHOOSEN R/3SLSORG, R/3 DISTRCHN, R/3DIVI.
    IN THE SAME FUNCTION TAB FOR SALES GROUP SELECTED SOUTHGROUP till THIS ITS WORKING FINE.
    PROBLEM IS : -
    For Office2 which is also belonged to south region, in Funtion tab inherited the sals org and assigned sales office but sales group i have to select southgroup only again for office2 also.
    But system not supported bcoz southgroup already assigned to Office1.
    Is there any solution inside PPOMA_CRM or we need to change the hierarchy of my client sales structure?

  • VBScript does not retrieve Member details if a Distribution/Security Group have only one Member

    Hi,
    VBScript does not retrieve Member details if a Distribution/Security Group have only one Member. I have tried several Scripts even changed the coding in it, also tried few External Script by created by other Scriptor's. Any suggestion on why this is happening. 

    Perfect... Thank you. I reworked on the Script and it is showing up. One more info required. I know my script is having another bug. Can you help me getting the member list of a User Group. When i pull it retrieves all the Group info for a user
    but no "Domain Users" Group.
    Sorry for the lame humor but it was getting late.
    As for you new request.  I do not understand what you are asking. Can you post your script and any error messages you are getting.
    ¯\_(ツ)_/¯

  • How to make only one column non reorderble

    I want to make only one column (Column 0) of my JTable non reorderble.
    I also want to make the same column non resizable and I want to give it a specific size.
    Please help me on this?

    I have implemented a RowHeaderTable class which displays 1, 2, 3, ... in the first column. The column is in the scrollpane's RowHeaderView, so it is not resizable nor reorderable. But its width can be set in your code. Maybe this is what you need.
    Use the class the same way you use a JTable, except 3 added methods:
    getScrollPane();
    setMinRows(int r);
    setRowHeaderWidth(int w);
    Note: The table works perfectly in skinless L&F, such as the default java L&F. It looks ugly in Liquid L&F because I don't know how to steal column header's UI to use on a JList. If someone can help me on this one, I thank you in advance.
    * RowHeaderTable.java
    * Created on 2005-3-21
    * Copyright (c) 2005 Jing Ding, All Rights Reserved.
    * Permission to use, copy, modify, and distribute this software
    * and its documentation for NON-COMMERCIAL purposes and without
    * fee is hereby granted provided that this copyright notice
    * appears in all copies.
    * JING DING MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE
    * SUITABILITY OF THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING
    * BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY,
    * FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. JING DING
    * SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT
    * OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
    import java.awt.BorderLayout;
    import java.awt.Component;
    import javax.swing.AbstractListModel;
    import javax.swing.JFrame;
    import javax.swing.JList;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import javax.swing.ListCellRenderer;
    import javax.swing.UIManager;
    import javax.swing.event.TableModelEvent;
    import javax.swing.event.TableModelListener;
    import javax.swing.table.DefaultTableModel;
    import javax.swing.table.JTableHeader;
    import javax.swing.table.TableCellRenderer;
    import javax.swing.table.TableColumn;
    import javax.swing.table.TableModel;
    * @author Jing Ding
    public class RowHeaderTable extends JTable {
      private int minRows = 10;                         // Minimum size of the row header.
      private static final int DEFAULT_WIDTH = 30;
      private JScrollPane jsp;
      // The row header is a JList with the same appearance as the column header.
      private JList rowHeader;
      // Repaint row header whenever the table inserts or deletes rows.
      private TableModelListener tmListener = new TableModelListener(){
        public void tableChanged(TableModelEvent e){
          if(e.getType() != TableModelEvent.UPDATE)
            rowHeader.repaint();
      /** Create a new instance of RowHeaderTable.
       * @param model
      public RowHeaderTable(TableModel model){
        setModel(model);
        initializeHeader();
        jsp = new JScrollPane(this);
        jsp.setRowHeaderView(rowHeader);
      private void initializeHeader(){
        rowHeader = new JList(new AbstractListModel(){
          public int getSize(){ return Math.max(getModel().getRowCount(), minRows); }
          public Object getElementAt(int index){ return "" + ++index; }
        setRowHeaderWidth(DEFAULT_WIDTH);
        rowHeader.setFixedCellHeight(getRowHeight());
        rowHeader.setCellRenderer(new TableRowHeaderRenderer());
      public void setRowHeaderWidth(int w){
        rowHeader.setFixedCellWidth(w);
      public void setMinRows(int m){ minRows = m; }
      public void setModel(TableModel model){
        super.setModel(model);
        model.addTableModelListener(tmListener);
      /**Use this method to get the scrollPane, instead of new JScrollPane(table).
       * @return
      public JScrollPane getScrollPane(){ return jsp; }
      protected class TableRowHeaderRenderer implements ListCellRenderer{
        TableCellRenderer colHeaderRenderer;
        public TableRowHeaderRenderer(){
          JTableHeader header = getTableHeader();
          TableColumn aColumn = header.getColumnModel().getColumn(0);
          colHeaderRenderer = aColumn.getHeaderRenderer();
          if(colHeaderRenderer == null)
            colHeaderRenderer = header.getDefaultRenderer();
        public Component getListCellRendererComponent(JList list, Object value,
            int index, boolean isSelected, boolean hasFocus){
          return colHeaderRenderer.getTableCellRendererComponent(
              RowHeaderTable.this, value, isSelected, hasFocus, -1, -1);
      public static void main(String[] args){
        try {
          UIManager.setLookAndFeel("com.birosoft.liquid.LiquidLookAndFeel");
        }catch (Exception e){ e.printStackTrace(); }
        String[] columnNames = {"First Name",
            "Last Name",
            "Sport",
            "# of Years",
            "Vegetarian"};
              Object[][] data = {
                   {"Mary", "Campione", "Snowboarding", new Integer(5), new Boolean(false)},
                   {"Alison", "Huml", "Rowing", new Integer(3), new Boolean(true)},
                   {"Kathy", "Walrath", "Knitting", new Integer(2), new Boolean(false)},
                   {"Sharon", "Zakhour", "Speed reading", new Integer(20), new Boolean(true)},
                   {"Philip", "Milne", "Pool", new Integer(10), new Boolean(false)}
        DefaultTableModel dtm = new DefaultTableModel(data, columnNames);
        RowHeaderTable rht = new RowHeaderTable(dtm);
        rht.setMinRows(0);
        JFrame frame = new JFrame("RowHeaderTable Demo");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().add(rht.getScrollPane(), BorderLayout.CENTER);
        frame.pack();
        frame.setVisible(true);
        dtm.addRow(new Object[]{"Mary", "Campione", "Snowboarding", new Integer(5), new Boolean(false)});
        dtm.addRow(new Object[]{"Mary", "Campione", "Snowboarding", new Integer(5), new Boolean(false)});
        dtm.addRow(new Object[]{"Mary", "Campione", "Snowboarding", new Integer(5), new Boolean(false)});
    }

  • Copy only one column  of the workbook1  and paste it in another workbook 2

    Hello Rishi. Please help me with this how to copy only one column C of the workbook1  and paste it in another workbook 2 in Column D so that When user execute workbook1 . and then execute workbook2 . Column D is automatically populated in Workbook2 based on the data in Column C in workbook 1
    Please help
    Thanks
    Soniya

    Hi Soniya
    As I mentioned earlier, I haven't come across a situation of copying data from one workbook to another. However, for doing some dynamic modifications within the different sheets of the same workbook, you can refer to the following thread:
    Comparing two queries with VBA macro
    Thanks,
    Rishi

  • Only one column was record on Trigger

    Dear Experts,
    I've created SQL Trigger, it has five column, but only one column was recorded when Trigger's fired, another filled by NULL value
    please your valuable suggestion & helps
    thank you
    warmest regards

    Triggers are fired by INSERT  not matter how many rows it will generate and it is perfectly possible to have NULLs if columns allow it..
    If you want to prevent from entering NULLs, please examine inserted virtual table to filter out the data which contains NULLs.
    Best Regards,Uri Dimant SQL Server MVP,
    http://sqlblog.com/blogs/uri_dimant/
    MS SQL optimization: MS SQL Development and Optimization
    MS SQL Consulting:
    Large scale of database and data cleansing
    Remote DBA Services:
    Improves MS SQL Database Performance
    SQL Server Integration Services:
    Business Intelligence

  • Group by for one column

    there is a scenario in informatica..where we can select more than one rows and group by on only one row..its possible in informatica..
    so can any one tell how to sql for those type of scenarios
    For example there are
    SEQUENCE_ID NUMBER NOT NULL,
    SAT_ID VARCHAR2(30 BYTE) NOT NULL,
    MFG_ID VARCHAR2(99 BYTE),
    SOLD_DT DATE,
    VIN VARCHAR2(30 BYTE)
    HE IS SELECTING ALL THE COLUMNS AND GROUPING BY ON SAT_ID ..so do any one tell how to write sql in that scenario

    in oracle you can have groupings without having to group all of the columns in the select clause by using an analytic query.
      select a.*
        from (select sequence_id,
                     mfg_id,
                     sold_dt,
                     vin,
                     row_number() over (partition by mfg_id order by sold_dt) rn
                from <table>
               where <conditions>) a
       where a.rn = 1
    try to post some sample data and output. we might be able to come up with some simple query that might be compatible or supported by informatica queries.

  • Listview checkbox group item only one can be checked

    I have a listview with checkbox , and grouped some checkbox, I need only can be checked for two checkboxes, but I use
     private void Listview_ItemCheck(object sender, ItemCheckEventArgs e)
                this.Listview.Items[0].Checked = !this.Paramlst2.Items[1].Checked;
                this.Listview.Items[1].Checked = !this.Paramlst2.Items[0].Checked;
    but it is not worked.
    can anybody suggest me how to modify the code to realize item0 and item1 only one can be checked.
    thanks

    Hi Sunny,
    According to your title, do you mean you only one checkbox is required to check?
    And the code, it seems not clear to me. What is Paramlst2 stand for?Which control did you use ?
    Could you help provide more information? It would be better to help us to understand your issue.
    Have a nice day!
    Kristin
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • Group Vote only one group

    Hi,
    I'm designing a human task where there needs to be a group vote of the users of only one group. If I select Group Vote, group -> "Name of the Group", the task is sent to the users of the group. One of them claims it and answers for the all group. Not what I want.
    What I want is, the users of the group receive the task, for example, 70% agree with the vote and the human task is finished. This behaviour happens when I select group vote and manually add all users of the group. How can I achieve this?
    Thanks,
    João

    Tasks can be assigned to both users and groups. In a group vote, if you assign the task to a group, there is only one assignment, which is to the group.
    If you want to create a group task for each user in the group, please assign dynamically the users of the group task using the xpath extension function, ids:getUsersInGroup(groupName, direct, realm). Please see section D.7.8 in the developer's guide for details of this function.

  • Distinct for only one column

    Hi,
    I want select only distinct column of one column while at the same time displaying the other column attributed to the selected column.
    e.g. select name
    from student
    where name in
    (select distinct name from student)
    and processing_date >= '20070701'
    and processing_date < '20070702'
    this list all the similar rows and the distinct. Please assist. Thanks

    I'm sorry, but I am still a confused. Your current query, as written, is logically equivalent to...
    SELECT name, address
    FROM   student
    WHERE  processing_date >= '20070701'
    AND    processing_date <  '20070702';since selecting the DISTINCT names from the same table will match on every row.
    Are you looking for the DISTINCT names and addresses?
    SELECT DISTINCT name, address
    FROM   student
    WHERE  processing_date >= '20070701'
    AND    processing_date <  '20070702';Or are you looking for output like this?
    Bill Johnson   123 Main Street
                   456 West Lane
    John Doe       222 Hill Stree
                   888 East AvenueAgain, some sample output would be helpful.
    Greg

  • Only one column header in delimited report ?

    Hi!
    Is there a way to put only one line of column header on delimited report?
    (By default the Report builder puts the header in every record line...
    as well the delimited_hdr = no command prompt property is not good, because puts out no header)
    Thanks!
    (I use RB 6i)

    Hello,
    http://www.oracle.com/webapps/online-help/reports/10.1.2/topics/htmlhelp_rwbuild_hs/rwrefex/cmdline/common/bld_delim_hdr.htm
    DELIMITED_HDR command line keyword
    DELIMITED_HDR is used to remove boilerplate text (such as the report header) when running a report with DESFORMAT=DELIMITED or DESFORMAT=DELIMITEDDATA.
    This parameter exists in Reports 6i too .
    Regards

Maybe you are looking for