Query to find out two counts on each column

Hi
can you help for the below query.
I wanted to find out two count values on each column, ie above or equal 5 count and below 5 count.
Table:
Q1 Q2 Q3 (Q1, Q2, Q3 are columns in a table.)
1 3 5
6 7 4
8 5 1
2 8 5
Query should display, like below.
Expected Result:
colname >=5 count <5 count
Q1 2 2
Q1 3 1
Q3 2 2
Thanks in advance.

The query itself can be simplified as follows:
SQL> with t as (
  2       select level lvl from dual
  3       connect by level < 4)
  4  select colname
  5       , sum(case when val >= 5 then 1 else 0 end) "count >= 5"
  6       , sum(case when val < 5 then 1 else 0 end) "count < 5"
  7  from (
  8       select decode (lvl, 1, 'Q1', 2, 'Q2', 'Q3') colname
  9               , decode (lvl, 1, q1, 2, q2, q3) val
10               , lvl
11       from (select q1, q2, q3
12                       from q),
13                       t)
14  group by colname, lvl
15  order by lvl;Lines 8-10 is what pivots the cartesian join (CJ) of q & t. It helps to explain it by breaking down each part.
The CJ produces (I added the lvl into the output below for explanation purposes):
SQL> with t as (
  2       select level lvl from dual
  3       connect by level < 4)
  4  select q1, q2, q3, lvl
  5  from q,
  6  t;
        Q1         Q2         Q3        LVL
         1          3          5          1  <-- line a1
         6          7          4          1  <-- line a2
         8          5          1          1
         2          8          5          1
         1          3          5          2  <-- line a5
         6          7          4          2
         8          5          1          2
         2          8          5          2
         1          3          5          3
         6          7          4          3
         8          5          1          3
         2          8          5          3
12 rows selected.and the CJ from above now allows us to pivot the results using the LVL column as the "decoding" key.
SQL> with t as (
  2       select level lvl from dual
  3       connect by level < 4)
  4  select decode (lvl, 1, 'Q1', 2, 'Q2', 'Q3') colname
  5       , decode (lvl, 1, q1, 2, q2, q3) val
  6       , lvl
  7  from (select q1, q2, q3
  8         from q),
  9         t;
COLNAME           VAL        LVL
Q1                  1          1 <-- line b1
Q1                  6          1 <-- line b2
Q1                  8          1
Q1                  2          1
Q2                  3          2 <-- line b5
Q2                  7          2
Q2                  5          2
Q2                  8          2
Q3                  5          3
Q3                  4          3
Q3                  1          3
Q3                  5          3
12 rows selected.Line b1:
The decodes hit line a1 of the CJ and since lvl = 1, we get colname=Q1 and the corresponding Q1 row value (val=1) of line a1 and finally the value of 1 for lvl.
Line b2:
For decode of line a2 of the CJ, lvl = 1 again and we get colname=Q1 and the corresponding Q1 row value (val=6) of line a2 and finally the value of 1 for lvl.
Line b5:
For decode of line a5 of the CJ, lvl = 2 and we get colname=Q2 and the corresponding Q2 row value (val=3) of line a5 and finally the value of 2 for lvl.
The other rows of the pivoted result set above are obtained similarly and from this result we can now perform the aggregation for the final result.
The WITH query is a called subquery factoring. It allows you to reference the subquery multiple places in the query.
HTH

Similar Messages

  • SQL query to find out last login for each database

    Hi everybody,
    I have a view with following columns:
    DatabaseSid, lastLogin, firstLogin.
    I want to now the newest last_login date for every database.
    SID First Login Last Login
    e.g. Database1, 11.11.2011, 01.12.2011
    Database1, 01.04.2012, 01.05.2012
    Database3, 03.03.2004, 03.06.2005
    Database 3 07.09.2012, 12.10.2012
    How can I do a query to find out for eacht DB (DB1, DB2 and so on) the Last_Login Date?
    Thank you in advance
    Steve

    Steve wrote:
    Hi everybody,
    I have a view with following columns:
    DatabaseSid, lastLogin, firstLogin.
    I want to now the newest last_login date for every database.
    SID First Login Last Login
    e.g. Database1, 11.11.2011, 01.12.2011
    Database1, 01.04.2012, 01.05.2012
    Database3, 03.03.2004, 03.06.2005
    Database 3 07.09.2012, 12.10.2012
    How can I do a query to find out for eacht DB (DB1, DB2 and so on) the Last_Login Date?
    Thank you in advance
    SteveI'm curious as to how you collect this information from multiple databases into one database, and of what value the data is once you have it.

  • Query to find out the table name and column name..

    Hi Experts,
    I have an Oracle DB in which has more than 50 tables and 100,000 records. I want to get the record which contains *"ITxtVarValue references a non existing text"* the text.
    Is there any query there to find out the table name and column name of this particular record where it reside?
    Please help. Any help will be rewarded.
    Thanks,
    G

    Using this forum's search function, I found a thread that should give you an idea: How to find out a tablename
    C.

  • Query to find out the list of user who have delete access

    Hi,
    I need a query to find out the list of users who have delete access on perticular folder/universe/ reports  in infoview.
    Please advice.
    Regards,
    Neo.

    orton607 wrote:
    thanks for replying guys. But the thing is i am using dynamic sql execute immediate in my package, so i want those tables also and the schema name.
    thanks,
    ortonThis is not possible. The best you could do is to have a good guess.
    Or how would you parse some dynamic statement as this:
       v_suffix := 'loyees';
       v_sql := 'Select count(*) from (select ''nonsense'' col1 from emp'||v_suffix||') where col1 = ''Y'''';
       execute_immediate(v_sql);
    ...What is the table name? How do you want to parse that?
    Better rewrite all dynamic SQL statements into non dynamic ones. Or do the source control logic for those dynamic parts in an extra module. For example implement your own dependency table and force every developer to add there all dynamic parts.

  • Query to find out last quarter data

    Hi All,
    I need a SQL query to find out. I have an amount field like below
    Period | Amt | Amt2
    ====================
    Jul | 0 | 0+20+30
    Aug | 20 | 0
    Sep | 30 | 0
    Oct | 0 | 0+50
    Nov | 50 |
    My need is Amt2 which needs to calculating in Qtr wise. Can any one post me a query for this.
    Thanks,
    Kamal

    Hi Valli,
    Thanks, so we need to create a function and then call that from report. I have doubt in this, for example if the user enter 'SEP-12' then it will find which QTR from the case statement. But if the user have account number which is available in all the months from 2010 - 2012.
    So now user will give two inputs like period_name='SEP-12' and Account Number=101010 then it should give output like sum(Q3) in the year of 2012. Here how it will calculate year wise? or do we need to specify any condition here?
    Please advice,
    Thanks,
    Kamal

  • Query to find out the time used by an user for an application

    Hello All,
    I want to know the query to find out the whole time used by the user for an application. Please view the below data
    Employee:
    SNO EMP_ID EMP_NAME EMP_DATE LOGIN_TIME LOGOUT_TIME
    1 10 Visu 21-Nov-2010 06:30:00 07:30:00
    2 10 Visu 21-Nov-2010 06:40:00 07:20:00
    3 10 Visu 21-Nov-2010 06:50:00 07:50:00
    4 10 Visu 21-Nov-2010 07:30:00 08:30:00
    5 10 Visu 21-Nov-2010 09:30:00 10:30:00
    By checking the above data we can say that the total time Visu used the application is
    8.30 - 6.30 (From 1,2,3,4 records) = 2hrs
    10.30 - 9.30 (Based on 5th rec) = 1hr
    So the total time Visu used the application would be 3 hrs = 180 mins.
    Could you please help me in getting the result from that data using a query?

    odie_63 wrote:
    I think it may be solved with analytics too.
    with t1 as (
                select 1 sno,10 emp_id,'Visu' emp_name,'21-Nov-2010' emp_date,'06:30:00' login_time,'07:30:00' logout_time from dual union all
                select 2,10,'Visu','21-Nov-2010','06:40:00','07:20:00' from dual union all
                select 3,10,'Visu','21-Nov-2010','06:50:00','07:50:00' from dual union all
                select 4,10,'Visu','21-Nov-2010','07:30:00','08:30:00' from dual union all
                select 5,10,'Visu','21-Nov-2010','09:30:00','10:30:00' from dual
         t2 as (
                select  emp_id,
                        emp_name,
                        emp_date,
                        to_date(emp_date || login_time,'DD-MON-YYYYHH24:MI:SS') login_time,
                        to_date(emp_date || logout_time,'DD-MON-YYYYHH24:MI:SS') logout_time
                  from  t1
         t3 as (
                select  t2.*,
                        case
                          when login_time < max(logout_time) over(
                                                                  partition by emp_id,emp_date
                                                                  order by login_time
                                                                  rows between unbounded preceding
                                                                           and 1 preceding
                            then 0
                          else 1
                        end start_of_group
                  from  t2
         t4 as (
                select  t3.*,
                        sum(start_of_group) over(partition by emp_id,emp_date order by login_time) grp
                  from  t3
         t5 as (
                select  emp_id,
                        emp_date,
                        min(login_time) login_time,
                        max(logout_time) logout_time
                  from  t4
                  group by emp_id,
                           emp_date,
                           grp
    select  emp_id,
            numtodsinterval(sum(logout_time - login_time),'day') time_spent
      from  t5
      group by emp_id
      order by emp_id
        EMP_ID TIME_SPENT
            10 +000000000 03:00:00.000000000
    SQL> SY.

  • How to use ONE query to find out tree structure?

    ID------------upperID----------Name------------------------isFolder
    1------------ 0---------- Folder
    1------------------------------------1
    2------------ 1------------ Folder 1- Sub
    Folder--------------------1
    3------------ 2------------
    Folder1-Item1-A--------------------------0
    4------------ 1------------ Folder 1- Sub
    Item-----------------------0
    Hi all, if I have a table like above to demonstrate the
    folders and item relationship. This structure allows the user to
    create unlimited folders and items.
    Now I would like to use one query to find out the tree
    structure of this table, how could I do the query.
    Any help on this will be highly appreciated!
    Thanks,
    ez

    Also, see this thread:
    http://www.adobe.com/cfusion/webforums/forum/messageview.cfm?forumid=1&catid=7&threadid=12 55788&enterthread=y

  • How do I find out the size of each individual element within a photoshop file as need to replace some elements?  Thanks :)

    How do I find out the size of each individual element within a photoshop file as need to replace some elements?  Thanks

    What do you mean by "Elements"?
    Elements in a flat image or Layers?
    Could you please post a screenshot with the Layers Panel visible?

  • Query to find out controls displayed as in UI for an applet,along with view

    Hi,
    I am looking for a query to find out list of all the controls as displayed in UI applet along with applet's view.
    Please note that in the query only mapped controls (those displayed in UI ) should come up.
    Regards,
    Kunal

    Hi,
    If the EUL is an apps mode (EBS) EUL then the eu_username column is the apps user id or apps resp id. If you want to show only the responsibilities and convert those ids to names then you need to use the EUL5_GET_APPS_USERRESP function like this:
    select ba_name, ba_developer_key, EUL5_GET_APPS_USERRESP(eu.eu_username, 'R') responsibility_name
    from eul5_bas ba
       , eul5_access_privs ap
       , eul5_eul_users eu
    where ba.ba_id = ap.gba_ba_id
    and ap.ap_type = 'GBA'
    and ap.ap_eu_id = eu.eu_id
    and eu.eu_role_flag=1
    order by 1,2,3Rod West

  • Query to find out which process consuming more cpu?

    Hi All,
    some one please tell me the query to find out which process is consuming more
    cpu resources?
    Thanks and Regards
    Srikanth

    Use V$SESSTAT to determine which sessions are using most CPU, and investigate what SQL these users/sessions are executing:
    SQL> select ss.sid, se.command, ss.value CPU, se.username, se.program
    from v$sesstat ss, v$session se
    where ss.statistic# in
    (select statistic#
    from v$statname
    where name = 'CPU used by this session')
    and se.sid=ss.sid
    order by ss.value desc;

  • Query to find out whether a table is sub-partitoned , composite type one

    Could you please let me know the query to find out whether a paritioned table
    is
    1). composite paritioned one.
    2). sub-paritioned one.
    I find that there are 2 cols in all_tab_partitions view, which lets me know
    1). COMPOSITE VARCHAR2(3)
    To find composite paritioned one or not.
    2). SUBPARTITION_COUNT NUMBER
    To find whether a table is sub-paritioned one or not.
    Any light on the above topic is highly appreciated.

    So it seems you've found the answer yourself?
    with »user_tab_partitions« and »user_tab_subpartitons« you'll get all the neccessary information you are looking for.

  • Query to find out license products installed

    hai dba
    tell me the query to find out what r hte products installed r licensed??
    regards
    dba

    1) From OAM: Oracle Applications Manager > Site Map > License Manager > Reports > License Products/Shared Products
    2) Use $AD_TOP/sql/adutconf.sql
    3) Use the following query:
    SQL> select fa.APPLICATION_SHORT_NAME, fpi.PATCH_LEVEL, DECODE(fpi.STATUS, 'I','Installed',
    'S','Shared', 'N', 'Inactive', fpi.STATUS) Status , fpi.DB_STATUS
    from fnd_product_installations fpi,FND_APPLICATION fa
    where fpi.APPLICATION_ID in (
    select APPLICATION_ID from FND_APPLICATION)
    and fa.APPLICATION_ID=fpi.APPLICATION_ID;

  • Query to find out pertcular schema related datafiles free space????

    hai,
    whats the query to find out free space in datafiles and index files related free space for perticular schmea?
    Regards
    dba

    If you wish to get free space in index tablespace then use following query:
    select b.tablespace_name, tbs_size SizeMb, a.free_space FreeMb
    from
    (select tablespace_name, round(sum(bytes)/1024/1024 ,2) as free_space
    from dba_free_space group by tablespace_name) a,
    (select tablespace_name, sum(bytes)/1024/1024 as tbs_size
    from dba_data_files group by tablespace_name
    UNION
    select tablespace_name, sum(bytes)/1024/1024 tbs_size
    from dba_temp_files
    group by tablespace_name ) b
    where a.tablespace_name(+)=b.tablespace_name
    and a.tablespace_name='INDX';
    and if you get info for all tablespace then :
    select b.tablespace_name, tbs_size SizeMb, a.free_space FreeMb
    from
    (select tablespace_name, round(sum(bytes)/1024/1024 ,2) as free_space
    from dba_free_space group by tablespace_name) a,
    (select tablespace_name, sum(bytes)/1024/1024 as tbs_size
    from dba_data_files group by tablespace_name
    UNION
    select tablespace_name, sum(bytes)/1024/1024 tbs_size
    from dba_temp_files
    group by tablespace_name ) b
    where a.tablespace_name(+)=b.tablespace_name;

  • Need query to find out the sum till a period

    Hi,
    I need to write one query to find out the cumulative sum of raw_cost of table pa_budget_lines till the specified period, I tried to do this by analytical function, but that is not working in Report 10g. Can anybody help me in this.
    Thanks

    not familiar with report but could you do something like this
    with t as
      select 1 grp, 10 * level the_cost, add_months (sysdate,  level) effective_dt from dual connect by  level < 11 union all
      select 2 grp, 5 * level the_cost, add_months (sysdate,  level) effective_dt from dual connect by  level < 11
    input as
      ( select null grp, null the_cost, null running_total,  v_eff_dt effective_dt   from dual)
    select * from(
    select t.grp, t.the_cost, sum(t.the_cost) over (partition by t.grp order by t.effective_dt) running_total, t.effective_dt,
           lead(t.effective_dt) over (partition by t.grp order by t.effective_dt) next_effective_dt,
           input.effective_dt  inp_eff_dt
    from t, input
    where inp_eff_dt between effective_dt and next_effective_dtv_eff_dt would be the input date you are interested in

  • Query to find out the Activities done against a table

    Hi,
    One table has been truncated and data reloaded into the table by the user. But at latter stage user deny that activity. I believe all these activities stored in any oracle 10g database table.
    Need a query to find out the activities done on a specific date say 6th Sep.
    This is too urgent. Thanks in advance

    Hi,
    Welcome to the forum!
    If you don't have enable table auditing maybe you can see last_ddl_time column of user_objects view:
    Connected to Oracle Database 10g Express Edition Release 10.2.0.1.0
    Connected as hr
    SQL> select * from test2;
          COL1       COL2       COL3
             1          1          3
             1          2          3
             1          3          3
    SQL> select to_char(uo.created, 'DD/MM/YYYY HH24:MI:SS'), to_char(uo.last_ddl_time, 'DD/MM/YYYY HH24:MI:SS') from user_objects uo where uo.object_name = 'TEST2';
    TO_CHAR(UO.CREATED,'DD/MM/YYYY TO_CHAR(UO.LAST_DDL_TIME,'DD/M
    12/09/2009 12:20:26            12/09/2009 12:20:27
    SQL> truncate table test2;
    Table truncated
    SQL> select to_char(uo.created, 'DD/MM/YYYY HH24:MI:SS'), to_char(uo.last_ddl_time, 'DD/MM/YYYY HH24:MI:SS') from user_objects uo where uo.object_name = 'TEST2';
    TO_CHAR(UO.CREATED,'DD/MM/YYYY TO_CHAR(UO.LAST_DDL_TIME,'DD/M
    12/09/2009 12:20:26            12/09/2009 14:01:21
    SQL> Regards,

Maybe you are looking for

  • Flash 8 pro question

    Looking for help on an issue with flash 8 pro. on trying to complete my button, i cannot get to the "modify, instance feature on 8 pro, is it even there?

  • Webpage AFP Hyperlink Problem in 10.4

    Hi, I have a situation where there is a web application which has an afp link hyperlink on one of its webpages, which takes you to a folder on the mount eg. afp://servername/sharename/folder/ In 10.5.x this works perfectly in Safari, but when you try

  • I have a HP printer I am trying to scan a report into my computer how do I do that

    I have  a HP printer can someone tell me the steps to do to scan a report to my computer so I can email it to someone Thank  You

  • CA98 - Task List is still used in inspection lots

    Hi, I've problem with the CA98 related to task list (Q). I've check a record only in the MAPL. I've execute the CA98 with the following parameters: SAP shows the following message "Task list is still used in ispection lots": What can i do?

  • Why wont my camera work

    a couple months ago, Apple replaced my phone because of a broken on/off button but now every time I want to use the camera, it doesn't work. I have to reset my phone every time I want to use it or any application that requires the camera. HELP!