Group by with and without where clause

Do I need to use these two inner views to show results by group by as one line? Can I achieve the same result without typing the same select statement two times since these two SELECT statements differ only in where clause. This query is a simulation. My actual query is longer. My expectation is to make this query shorter (without inner views).
with tmp as (
select 'COMPLETE' status, 'GERMANY' country, 0 substatus FROM dual UNION ALL
select 'COMPLETE' status, 'GERMANY' country, 1 substatus FROM dual UNION ALL
select 'COMPLETE' status, 'GERMANY' country, 0 substatus FROM dual)
select v1.status, v1.country, v1.cnt01, v2.cntIncluding0 from
(select status, country, count(*) cnt01 from tmp tmp1 group by status, country) v1
JOIN
(select status, country, count(*) cntIncluding0 from tmp tmp2 where substatus=0 group by status, country) v2
on v1.status=v2.status and v1.country=v2.country;

totalnewby wrote:
Do I need to use these two inner views to show results by group by as one line? Can I achieve the same result without typing the same select statement two times since these two SELECT statements differ only in where clause. This query is a simulation. My actual query is longer. My expectation is to make this query shorter (without inner views).
with tmp as (
select 'COMPLETE' status, 'GERMANY' country, 0 substatus FROM dual UNION ALL
select 'COMPLETE' status, 'GERMANY' country, 1 substatus FROM dual UNION ALL
select 'COMPLETE' status, 'GERMANY' country, 0 substatus FROM dual)
select v1.status, v1.country, v1.cnt01, v2.cntIncluding0 from
(select status, country, count(*) cnt01 from tmp tmp1 group by status, country) v1
JOIN
(select status, country, count(*) cntIncluding0 from tmp tmp2 where substatus=0 group by status, country) v2
on v1.status=v2.status and v1.country=v2.country;
SQL> with tmp as
  2  (
  3  select 'COMPLETE' status, 'GERMANY' country, 0 substatus FROM dual UNION ALL
  4  select 'COMPLETE' status, 'GERMANY' country, 1 substatus FROM dual UNION ALL
  5  select 'COMPLETE' status, 'GERMANY' country, 0 substatus FROM dual
  6  )
  7  select status,
  8         country,
  9         count(substatus) cnt01,
10         sum(decode(substatus, 0, 1, 0)) cntincluding0
11    from tmp
12   group by status, country
13  ;
STATUS   COUNTRY      CNT01 CNTINCLUDING0
COMPLETE GERMANY          3             2

Similar Messages

  • Cardinality estimator 2014 is off with OR in where clause

    Here is my test setup on SQL Server 2014.
    -- Create big table
    CREATE TABLE [dbo].[Store](
    Id int IDENTITY(1,1) NOT NULL,
    City int NOT NULL,
    Size int NOT NULL,
    Name varchar(max) NULL,
    CONSTRAINT [PK_Store] PRIMARY KEY CLUSTERED ([Id] ASC)
    GO
    CREATE NONCLUSTERED INDEX [IX_Store] ON [dbo].[Store] (City ASC, Size ASC)
    GO
    -- Fill with 100k rows
    INSERT Store
    SELECT i % 101, i % 11, 'Store ' + CAST(i AS VARCHAR)
    FROM
    (SELECT TOP 100000 ROW_NUMBER() OVER (ORDER BY s1.[object_id]) AS i
    FROM sys.all_objects s1, sys.all_objects s2) numbers
    GO
    -- Create small table
    CREATE TABLE #StoreRequest (City int NOT NULL, Size int NOT NULL)
    GO
    INSERT #StoreRequest values (55, 1)
    INSERT #StoreRequest values (66, 2)
    Now I execute the following query (I force the index to show statistics estimates)
    SELECT s.City
    FROM #StoreRequest AS r
    INNER JOIN Store AS s WITH(INDEX(IX_Store), FORCESEEK)
    ON s.City = r.City AND s.Size = r.Size
    WHERE s.Size <> 1 OR r.City <> 55
    Here are the estimates that I get (I'm not allowed to upload pictures):
    Index Seek IX_Store
    Actual Number of Rows: 90
    Estimated Number of Rows: 50000
    Fixing WHERE clause to use one table not two makes the estimate perfect:
    SELECT s.City
    FROM #StoreRequest AS r
    INNER JOIN Store AS s WITH(INDEX(IX_Store), FORCESEEK)
    ON s.City = r.City AND s.Size = r.Size
    WHERE s.Size <> 1 OR s.City <> 55
    Index Seek IX_Store
    Actual Number of Rows: 90
    Estimated Number of Rows: 89.74
    Switching to 2012 compatibility mode gives estimate of 1 in both cases:
    Index Seek IX_Store
    Actual Number of Rows: 90
    Estimated Number of Rows: 1
    Could anyone explain the first result? I'm a bit worried about it. The fix in this case is trivial, but this problem gave us quite some headache in more complex real life queries with multiple joins.
    Thank you!

    But not full statistics on a field basis, just sometimes some default stats like total row count that some plans will build.  Even your StoreRequest table only has one two-field index that will have a full histogram.
    But I've seen SQL Server make massively bad plans on two-field indexes.
    I've seen SQL Server go wrong one-column indexes, so that is not a very relevant point.
    Temp tables or not, the estimate here is clearly incorrect. SQL Server knows the density of Size and City. It knows the cardinality of the temp table. The density information gives how many rows the the join will produce. The WHERE clause will then remove
    a certain number of rows. With no statistics for the temp table, it does not now how many, but it will apply some standard guess.
    50000 is a completely bogus number, because the join cannot produce that many rows, and SQL Server is able to compute the join with out the WHERE clause decently. (Well, it estimates 90, when the number is 180.) No, this is obviously a case of the cardinality
    estimator giving up completely.
    It is worth noting that both these WHERE clauses gives reasonable estimates:
     WHERE r.Size <> 11 OR r.City <> 550
     WHERE s.Size <> 11 OR s.City <> 550
    Whereas these two gives the spooky 50000:
     WHERE s.Size <> 11 OR r.City <> 550
     WHERE r.Size <> 11 OR s.City <> 550
    Erland Sommarskog, SQL Server MVP, [email protected]

  • VA01: Creation of SD order with several material codes,with and without VAT

    hi guys,
    could someone tell me how to set up the system to not be able to create an SD orders with a mix of VAT condition?
    We don't want a sales order with an combination with and without VAT.
    Pls advise. Thanks.

    could someone tell me how to set up the system to not be able to create an SD orders with a mix of VAT condition?
    We don't want a sales order with an combination with and without VAT.
    H i
    1.The Vat ( Tax ) is applicable on basis of Customer and Mareial Tax classification.
    2. So as far as material is concerned , group all VAT applicable material in One Division
    Say in FMCG Company
    Divisions are Soaps , Skin Care , Shampoo etc
    Create Sub Divsions say for Eg Soaps-------Soaps 1( Taxable) & Soaps 2 .( Non Taxable ) and acordingly for other divisions
    And then Create Sales Areas accordingly.
    All this will need Reorganisation of your Sales Area
    Regards
    Rohit

  • On success of form save I want to go to another for with a detail where clause

    I have the follow code snippet which is intented to go to a form on a successfull save. I query some data based on the save then build a url to navigate to a new form. I want the form to show only data that is lacking in one column not being populated (column is null). The url works, but the form detail where clause is ignored. Does anyone have any experience with passing detail where clauses to a form? Did I miss something in the code below?
    begin
    select count(rl_id) into n_rl_id_cnt
    from rfq_lines
    where part_part_id is null and rh_rh_id=n_rh_id;
    exception
    when others then
    null;
    end;
    htp.p('cnt '||to_char(n_rl_id_cnt));
    if n_rl_id_cnt>0 then
    htp.p('cnt >1');
    my_url := 'PORTAL30.wwa_app_module.link?' ||
    'p_arg_names=_moduleid&p_arg_values=3677858481' ||
    '&p_arg_names=_show_header&p_arg_values=YES' ||
    '&p_arg_names=rh_id&p_arg_values=' || LTRIM(TO_CHAR(n_rh_id)) ||
    '&p_arg_names=_rh_id_cond&p_arg_values=%3D'||
    '&p_arg_names=_detail_where_clause&p_arg_values=part_part_id%20is%20null'; -- <this is not working right. where clause is ignored.
    htp.p(my_url);
    go (my_url);

    Hi Jeffrey ,
    You need to use a custom Format script for the field.
    Regards
    Sukrit Dhingra

  • Dynamic Order by with user defined Where clause...

    Hello!
    I have a block based on a table, with no order by set and no where clause.
    The block is queryable so users can filter the data to be retrieved.
    Each of the columns on the form have a button above which requeries the block, applying the order by (SET_BLOCK_PROPERTY ( 'B12', ORDER_BY, :bc1.h_b12_custom_orderby ); )
    The problem is that each time the block is requeried the user definied filter criteria is lost. Is there any way I can get a handle on this and maintain the filtering?
    GET_BLOCK_PROPERTY(item, DEFAULT_WHERE); only retrieves the query entered while in design mode so this won't work.
    I'm using Oracle Forms 6i, web based. Any suggestions are very much appreciated.
    Thanks in advance,
    Jay

    Many thanks for your response Hedy,
    Below is the procedure I used to achieve this.
    I found GET_BLOCK_PROPERTY ( p_block, LAST_QUERY ) worked better than :SYSTEM.last_query. As the first time it is called within a block :SYSTEM.last_query returned the query made in another block - which I'm sure has it's applications.
    Thanks again,
    Jay
    PROCEDURE set_last_query_where ( p_block IN VARCHAR2
    , p_where IN VARCHAR2 DEFAULT NULL )IS
    l_last_query VARCHAR2(10000);
    l_last_where VARCHAR2(10000);
    BEGIN
    IF p_where IS NULL THEN
    l_last_query := UPPER(GET_BLOCK_PROPERTY ( p_block, LAST_QUERY ));
    l_last_where := SUBSTR ( UPPER ( l_last_query),
    INSTR ( l_last_query, 'WHERE')+6, INSTR(SUBSTR(UPPER(l_last_query), INSTR(l_last_query, 'WHERE')+8), 'ORDER BY'));
    ELSE
    l_last_where := p_where;
    END IF;
    SET_BLOCK_PROPERTY ( p_block, DEFAULT_WHERE, l_last_where );
    EXCEPTION
         WHEN FORM_TRIGGER_FAILURE THEN
         ref_raise_ftf;
         WHEN OTHERS THEN
         ref_others( 'P-SLQW' );
    END;

  • When I am abroad (living in Norway) the phone only temporarily  connects to a network. Most of the time is says "no service" in top left corner...I have tried to turn it on/off...with and without sim installed...roaming makes no diff. Can anyone help me?

    When I am abroad (living in Norway) the phone only temporarily (and seldom) connects to a network. Most of the time is says "no service" in top left corner...From advice I have tried to turn it on/off...with and without sim installed...roaming makes no diff. Can anyone help me?

    You're welcome.
    If she has full reception and connection with the same cell phone carrier where you don't - with you both using a SIM card provided by the same carrier while in Norway with an unlocked iPhone, then make an appointment at an Apple Store if there is one nearby to have a diagnostic test run on your iPhone.
    In the interim, I would contact this cell phone carrier in Norway to ensure your iPhone is provisioned properly. They can run a reset for your account that will require powering your iPhone off, so call them with your wife's iPhone for this.

  • Execute one cursor with and without different filter condition

    I want to execute one cursor with and without different filter condition
    example :-
    if the account no is null;
         cursor cur is select * from account_master;
    if account no is not null
         cursor cur is select * from account_master where account_no = p_acc_no;

    Braam wrote:
    I want to execute one cursor with and without different filter condition
    example :-
    if the account no is null;
         cursor cur is select * from account_master;
    if account no is not null
         cursor cur is select * from account_master where account_no = p_acc_no;Use Refcursor:
    DECLARE
      refCur     SYS_REFCURSOR;
    BEGIN
      open refCur for 'select col1, col2 from your_table';
      loop
      --Your process logic here
      end loop;
      close refCur;
      open refCur for 'select col1, col2 from your_table where some_condition = is_satisfied';
      loop
      --Your Process logic here.
      end loop;
    END;

  • Bex Report with and without BIA . . Fails with a dump EXPORT_TOO_MUCH_DATA

    Hi Folks,
    We have a report thats has been running well in production for more about 18 months. This month it did not complete execution.
    We did implement BIA couple of 4 months back and the run times have drastically reduced after the BIA. Now this query execution results in a Dump with and without BIA.  FYI the underlying cube has 195,876,020 records only.
    Name of Runtime error: EXPORT_TOO_MUCH_DATA
    Short text:     Too much data for export.
    What happened?     Runtime error
        The current ABAP program "CL_RSR_CACHE_DO_SPID==========CP" had to be
         terminated because one     of the statements could not be executed at runtime.
    Error analysis: The dataset stored under an EXPORT/IMPORT ID is restricted
    by
    1. The maximum possible size of 2 GB
    2. The length of a data record and the capacity of the sequence counter. This error occurs only if the capacity of the
    sequence counter does not go beyond 255.
    Source Code Extract:
        1 METHOD if_rsr_cache_data_object~get_xstring.
        2
        3   FIELD-SYMBOLS:
        4     <l_xstring>            TYPE xstring,
        5     <l_sp>                 TYPE ANY,
        6     <l_spinfo>             TYPE ANY.
        7
        8   CREATE DATA r_r_xstring.
        9   ASSIGN r_r_xstring->* TO <l_xstring>.
       10   ASSIGN n_s_spid-r_sp->*     TO <l_sp>.
       11   ASSIGN n_s_spid-r_spinfo->* TO <l_spinfo>.
       12
       13 *... Sp has to be the first component
    >>>>>   EXPORT sp = <l_sp> spinfo = <l_spinfo>
       15          TO DATA BUFFER <l_xstring> COMPRESSION ON.
       16
       17 ENDMETHOD.
    Referred to the below note 0001232573
    which says to have 'RSRCACHE_ITAB_COMPR'  parameter using report SAP_RSADMIN_MAINTAIN
    Note say the below (It might be a little tricky, to find an appropriate value for 'RSRCACHE_ITAB_COMPR' as it heavily depends on the query-specific data structures that are stored in the cache. The general recommendation would be to start with a value of about 5000. Test this with a query, that dumped previously. In case the dump persists reoccurs, reduce the value of the parameter significantly. Otherwise, if no dump occurs but you face noticeably longer runtimes, increase the parameter.)
    We are trying not able to get to the right parameter value. (changed it from 5000, 4000, 3000, & 1000) without much  help.  Did any of you had to change this parameter. How low or High can this parameter be changed?
    We would like to understand if changing any other parameters would help in RSADMIN table would help?
    Any thoughts from the experts would be appreciated
    Thanks,
    FHF

    Hi,
    Are you running the report for all the selections(all the data )?
    execute the report with data selection and check?
    Is the data in the Ic - compressed?
    Regards
    KP

  • Is there an issue going on with the iPhones? And iPads? I cannot send text pics.  I can't get on Facebook, and I can't get on anything that uses Facebook ex Slotomania.  This has been going on for a few days!!!  It is happening with and without upgrades.

    Is there an issue going on with the iPhones? And iPads? I cannot send text pics.  I can't get on Facebook, and I can't get on anything that uses Facebook ex Slotomania.  This has been going on for a few days!!!  It is happening with and without upgrades.

    Contact facebook to address the facebook issues.

  • Camera wont capture when Tethering Canon T5i in Lightroom 4.4. Tried with and without card.

    I just unboxed a Canon T5i (700D). I've been shooting with a T2i for the past three years tethered to LR4 with no problem. Now with the T5i, i connect the camera, set up a new tether session and LR detects the camera in the pop up bar, but the sections for Shutter Speed, Aperture, and ISO are blank. The capture button is able to be clicked, but the camera does not respond. When the shutter on the camera is pressed, also no response. I have tried this with and without the SD card. I have used three usb cable and two different computers. I have checked for updates and my firmware is current. The camera is set to manual mode in the on position NOT the video position and I am tethering to a Windows 7 computer. Please help!

    You will need LR5 for that camera to be supported for direct tethered capture.  Or you can use the LR "Watched Folder" feature and use the EOS Utility or other tethering software packages.  Here is a list of some options - http://www.tethertools.com/plugging-in/software/

  • T450s screen size? (with and without bezel/border)

    Hello, May I ask the exact dimensions of the screen, with and without the bezel (in metric system)?Here is an image of the 4 coords I would need: http://ximg.fr/view-23376686df3969b67183003635c63a4f.htmlThank you very much

    the attached image is a t550 indeed but that's because it was the only decent image i could find on google, so I confirm I require these infos for the T450s.
    Thanks

  • Create a view with a changing where clause

    Hi all,
    i'm developing an application with oracle forms i want to create a view in the database with a different where clause in every time , the where clause is determined due to the department id of the current user .
    thanks alot.

    SQL> create view emp_view as select empno, ename, deptno from emp;
    View created.
    SQL> select * from emp_view where deptno = 10;
         EMPNO ENAME          DEPTNO
          7782 CLARK              10
          7839 KING               10
          7934 MILLER             10
    SQL>

  • TS3406 I have a connection in the top left hand corner and can access the internet with and without internet on my iphone 5c but I can't receive and create texts and calls, someone please help have tried everything!

    I have a connection in the top left hand corner and can access the internet with and without internet on my iphone 5c but I can't receive and create texts and calls, someone please help have tried everything!

    YOu will need to contact your cell phone provider to resolve those issue, those are carrier features.

  • Define a Standalone Download Integrator with an Additional Where clause - SQL error

    Hi,
    I am trying to create a standalone integrator with an Additional Where clause. Followed the steps mentioned in the metalink note 360105.1. When I run the integrator, I get the following error message.
    Please resolve the following error to continue.
    SQL error: ORA-00936: missing expression occurred
    processing stored SQL for Content 20007:GENERAL_441_CNT.
    When I look at the log file, here is what I can see:
    10/22/14 10:50 AM AJPRequestHandler-HTTPThreadGroup-15 TRACE          BneHrSQLControl - SQL:SELECT  FROM PER_PEOPLE_V where last_name=$PARAM$.last_name
    10/22/14 10:50 AM AJPRequestHandler-HTTPThreadGroup-15 TRACE          validateSQLStatement value of sqlStatement is: SELECT  FROM PER_PEOPLE_V where last_name=:RSQLP1
    10/22/14 10:50 AM AJPRequestHandler-HTTPThreadGroup-15 DETAIL         BneHrSQLControl.validateSQLStatement() paramName: last_name
    10/22/14 10:50 AM AJPRequestHandler-HTTPThreadGroup-15 DETAIL         BneHrSQLControl.validateSQLStatement() error in SQL: java.sql.SQLSyntaxErrorException: ORA-00936: missing expression
    So, clearly, the SQL statement that is getting built internally is wrong. Ideally, I would expect the statement to be something like this:
    SELECT *  FROM PER_PEOPLE_V where last_name=$PARAM$.last_name.
    RDBMS : 11.2.0.3.0
    Oracle Applications : 12.1.3
    Any pointers towards the resolution of the issue would be of great help.
    Thanks in Advance!
    Lalitha.

    This is a duplicate post of your other question:  create trigger automatic
    DO NOT start duplicate threads for the same question.
    Locking this thread

  • Physical inventory with and without handling unit managment

    Hello all,
    I would like to know what is the difference between physical inventory with and without handling unit management.
    Pl. advise.
    Thanks,
    Maxx

    Assuming you are referring to WM inventory, it is very similar.  Inventory is conducted at the SU level in WM if you are HU managed.  One of the most widely known issues is the lack of ability to post differences of nested HUs at the WM level.  If you are not using nested HUs, the process is the same as storage unit management without handling unit management.

Maybe you are looking for

  • Problem with subtotal, and the total icon is not displayed at the toolbar

    Hi all, I'm currentlyhaving difficulties working with the subtotal and the grandtotal. I have the code in the right place like the sort table   CLEAR k_sort.   ADD 1 TO k_sort-spos.   k_sort-fieldname = pv_fieldname.   k_sort-up        = c_x.   k_sor

  • I want only one Apple acct....please!

    I have 4 Apple related accounts: 2 "apple.com", 1 "daw.apple.com", 1 "secure1.store.apple.com" How can I have only one acct. for Apple,  iTunes, Cloud, etc.?

  • Order rows on the basis of score

    I have a table like this format: ID COL1 COL2 1 i am a boy good is male 2 i am a good boy good is male 3 i am a good girl gender is female Now the user will enter a keyword (in this example, 'good'). Based on that, if the keyword is found in column1,

  • Cannot open web page in new tab in V 3.6.13

    I am using FF V. 3.6.13 with VISTA & Norton Security Suite. When I am in a web site and I click on a link, nothing happens. I have to right click on the link, chose "Open Link In New Tab" to get anything to happen. On some web sites I am unable to do

  • Why Oracle does not allow rollback of  DDL statements?

    I have always been surprised why Oracle does a implicit commit when DDL statements (e.g create table -) are executed. DDL statements simply write information (insert, delete and update) to data dictionary, so why DDL statement cannot be rolled back.