Using count function with grouped records

Hi all,
This seems like it should be real easy but I have yet to figure out a simple way to do this.
Suppose I want to count Opportunities that are grouped by Sales Rep. At run-time I am filtering this list with a parameter for Sales Stage and created date.
I've simplified this greatly, but here's what my setup looks like now:
Sales Rep* ---------Count*_
<?for-each-group:Opportunity[SalesStage=param1 and Created>param2];./salesrep?>
<?salesrep?>-------<?count(current-group()/Id)?>
<?end for-each-group?>
Total_
The only solution I have so far to get my grand total is to create a variable and keep a running total which I'll then display in the Total column. While it works, it seems like there should be an easier way, like doing a simple count(Id) to get the grand total. But since the Total appears after the end for-each-group, I lose the filter that was applied to the group so that count is invalid.
Any thoughts from the experts?
Thanks!

To get grand total
use
<?count(/Oppurtunity[SalesStage=param1 and Created>param2]/Id)?>since you did not mention the complete xml, i assumed, Opportunity as the Root.
if not, put the full path from the root.
if you give some xml sample, and explain the output you wanted, we can fix it immediately.
go thru these too..some thing can be pulled from here .
http://winrichman.blogspot.com/search/label/Summation%20In%20BIP
http://winrichman.blogspot.com/search/label/BIP%20Vertical%20sum

Similar Messages

  • Can i use Lead function with Group by function

    I could use this query and get right ouput since i define product id =2000
    select product_id, order_date,
    lead (order_date,1) over (ORDER BY order_date) AS next_order_date
    from orders
    where product_id = 2000;
    But can i run this query by Group by Function
    for example
    select product_id, order_date,
    lead (order_date,1) over (ORDER BY order_date) AS next_order_date
    from orders
    group by product_id ;
    since data would be like and i need
    Product_id order Date
    2000 1-jan-09
    2000 21-jan-09
    3000 13-jan-09
    3000 15-jan-09
    4000 18-jan-09
    4000 19-jan-09
    output would be like for eg
    Product_id order Date Next_date
    2000 1-jan-09 21-jan-09
    3000 13-jan-09 15-jan-09
    4000 18-jan-09 19-jan-09

    Thanks everybody for ur help
    i could exactly mention what i requred
    create table SCHEDULER
    ( REF VARCHAR2(10),     
    NO NUMBER     ,
    PORT VARCHAR2(10),     
    ARRIVAL DATE     ,
    DEPARTURE DATE
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA0677',1,'KUWAIT','1-Sep-09','02-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA0677',2,'INDIA','5-Sep-09','07-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA0677',3,'COLUMBO','8-Sep-09','09-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA0677',4,'IRAN','10-Sep-09','12-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA0677',5,'IRAQ','14-Sep-09','15-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA0677',6,'DELHI','17-Sep-09','19-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA0677',7,'POLAND','21-Sep-09','23-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA0678',1,'INDIA','5-Sep-09','07-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA0678',2,'COLUMBO','8-Sep-09','09-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA0678',3,'IRAN','10-Sep-09','12-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA0678',4,'IRAQ','14-Sep-09','15-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA0678',5,'DELHI','17-Sep-09','19-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA0678',6,'POLAND','21-Sep-09','23-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA0678',7,'GOA','1-Oct-09','02-Oct-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA2372',1,'INDIA','1-Sep-09','02-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA2372',2,'KERALA','3-Sep-09','03-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA2372',3,'BOMBAY','4-Sep-09','04-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA2373',1,'INDIA','5-Sep-09','06-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA2373',2,'ANDHERI','6-Sep-09','07-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA2376',1,'INDIA','5-Sep-09','07-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA2420',1,'INDIA','5-Sep-09','06-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA2420',2,'ANDHERI','7-Sep-09','08-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA2420',3,'BURMA','10-Sep-09','11-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA2420',4,'BENGAL','11-Sep-09','12-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA2445',1,'INDIA','4-Sep-09','05-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA2445',2,'BURMA','7-Sep-09','09-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA2498',1,'BENGAL','8-Sep-09','08-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA2498',2,'COCHIN','11-Sep-09','11-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA2498',3,'LANKA','12-Sep-09','12-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA2498',4,'COLUMBO','13-Sep-09','15-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA2498',5,'INDIA','17-Sep-09','18-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA2505',1,'COLUMBO','5-Sep-09','06-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA2505',2,'GOA','8-Sep-09','09-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA2505',3,'INDIA','13-Sep-09','15-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA2510',1,'INDIA','4-Sep-09     06-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA2510',2,'BENGAL','8-Sep-09     09-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA2510',3,'GOA','10-Sep-09     11-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA2513',1,'INDIA','7-Sep-09','09-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA2513',2,'USA','11-Sep-09','11-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA2513',3,'UK','12-Sep-09','13-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA2520',1,'INDIA','4-Sep-09','06-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA2520',2,'BENGAL','8-Sep-09','09-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA2520',3,'GOA','10-Sep-09','11-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA2526',1,'INDIA','5-Sep-09','07-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA2526',2,'DUBAI','10-Sep-09','11-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA2526',3,'GOA','13-Sep-09','15-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA2526',4,'OMAN','17-Sep-09','18-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA2526',5,'INDIA','19-Sep-09','20-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA2527',1,'BURMA','7-Sep-09','08-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA2527',2,'INDIA','9-Sep-09','10-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA2527',3,'ANDHERI','10-Sep-09','16-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA2532',1,'SHARJAH','3-Sep-09','04-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA2532',2,'AEDXB','5-Sep-09','05-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA2533',1,'AESHJ','2-Sep-09','02-Sep-09');
    INSERT INTO SCHEDULER(REF,NO,PORT,ARRIVAL,DEPARTURE)
    VALUES('VA2533',2,'INDIA','3-Sep-09','03-Sep-09');
    COMMIT;
    Suppose these records shows the REF travelling from one location to another with respect to date
    We need to find out each REF GROUP WISE AND THE DATE OF TRAVELLING FOR SPECIFIED location travelling IE from STARTING FROM INDIA AND ENDING TO GOA
    OUTPUT SHOULD BE LIKE DATA SHOWN BELOW
    FROM LOCATION TO LOCATION
    REF , NO , PORT , ARRIVAL ,DEPARTURE , REF , NO , PORT , ARRIVAL , DEPARTURE
    VA0678     1 INDIA     5-Sep-09 07-Sep-09     VA0678 7 GOA 1-Oct-09 02-Oct-09     
    VA2510     1 INDIA     4-Sep-09 06-Sep-09     VA2510 3 GOA 10-Sep-09 11-Sep-09
    VA2520     1 INDIA     4-Sep-09 06-Sep-09     VA2520 3 GOA 10-Sep-09 11-Sep-09
    VA2526     1 INDIA     5-Sep-09 07-Sep-09     VA2526 3 GOA 13-Sep-09 15-Sep-09
    ----------------------------------------------------------------------------------------------------------------------------------------------------------------

  • [WebIntelligence Reporting] How to use count function with condition !?

    Post Author: xuanthuyit
    CA Forum: WebIntelligence Reporting
    Hi everyone,
    I want to make a report like this  with WebIntelligence reporting.
    I want to show the number of Outlet of each chanel (Horeca, Grocery, Convenience) at the end of report !
    But I don't know how to do that with WebIntelligence Reporting.
    Please help asap. . .
    Thank you verry much,

    Post Author: jsanzone
    CA Forum: WebIntelligence Reporting
    xuanthuyit:
    Apparently =count() &#91;and use of a where&#93; was permissible in previous versions of BusObjects, however, things in XI are different (as other users tell me, being XI is my first experience w/ BusObj...), so anyhow, here is the solution to your question.
    You will have have to create two variables for each condition you have.  One variable will be the "helper" and the other variable will be the "worker".  For instance, create a variable called channel_x and the formula:  =if(channel="haney";<metric>;0)  (where "haney" is the name of your organization and <metric> is the metric you are using to count or sum things in your report).  Once channel_x is saved create another variable called channel_x_count and the formula:  =sum(&#91;channel_x&#93;).  Once channel_x_count is saved, then on your report towards the bottom you can use the Template bar to drag in a new table (perhaps you want to use the Horizontal Table type), and then you can drag channel_x_count into your new table.  You will have to repeat the creations of more channel_x type variables (maybe call it channel_y and channel_y_count) or something more descriptive, but in any case substitute the "haney" constant for the next store you want to track, etc, etc.

  • How to use aggregate function with Date

    Hi All,
    I have a group of date from that is it possible to Max and Min of date.
    I have tried like this but its errored out <?MIN (current-group()/CREATION_DATE)?>.
    I have also tried like this but it doesnt works
    <?xdoxslt:minimum(CREATION_DATE)?>
    Is it possible to use aggregate function with date values.
    Thanks & Regards
    Srikkanth

    Hi KAVI PRIYA,
    if date is not in cannonical format, how can we change it in BI publisher, then how to calcualte minimum and as well as maximum.
    please advise me,
    Thanks,
    Sri

  • How can I use AGO function with aggregates

    I use aggregated table and a detailed table
    I have time hierarchy whose lowest level is date. For sales I
    created year-to-year (YTD) comparision with AGO function. It
    works OK.
    BUT, I want to speed it up, so I used aggregates. I created new
    time table grouped by MONTH and corresponding agg_SALES table. I
    created connections and mapped the fields. It works OK for
    normal queries, that means my queries at month level use
    aggregates. BUT when I add YTD measures or YAGO measure in query, it goes to
    then SALES table whose grain is date.
    How can I force BI Server to use AGO function with aggregates?
    I use OBIEE 10.1.3.4
    Thank you
    Ishaq
    (Question originally taken from ITtoolbox and posted by Gorazd)
    SORRY - THE QUESTION IS IN THE WRONG FORUM
    Edited by: ishaq12 on Nov 19, 2008 12:21 PM

    Hi,
    you can not do it in Administration tool but you can set agregation for that field in Answers (fx->Agregation rule->Sum) and effect should be the same. Note that it may not work properly on Oracle 10g as generated SQL is not 100% recognized, on 11g everything is OK (at least in my case).
    Regards,
    Marko
    Edited by: user10449532 on 2008.11.19 06:29

  • Case function with group by

    Hi,
      I am having a scenario like :
    Column 1:  BrokerList(dimension1)
    Column 2 : Broker(dimension2)
    Column 3 : Metric value(measure)
    so i am having a case when (dimension 3) Custodian = 'ss' then sum(metirc) group by dimension1,dimension2 but the result value is not matching
    BrokerList
    Broker
    Metric
    a1
    a
    10
    b
    20
    c
    30
    a1 :total
    60
    a2
    a
    50
    c
    60
    d
    10
    a2:total
    120
    Grand total
    180
    Here the metric is based on other case condition.. so the total value is not matching.. Is there any other way to do a case function with group by funtions. Please advise.
    regards,
    Guru

    Use filter on metric by ss value and then go for group by from Criteria
    something like
    sum(FILTER(metric USING (Custodian = 'ss')) by dimension1,dimension2)
    mark if helps
    ~ http://cool-bi.com

  • Creating Report using EPM Functions with Dynamic Filters

    Hi All,
    I am new to BPC, In BPC 7.5 i seen like we can generate EPM report using EVDRE function very quickly and easy too. Is the same feature is existing in BPC 10.0 ? if no how can we create EPM reports using EPM Functions with Dynamic Filters on the Members of the dimension like in BPC 7.5.
    And i searched in SDN, there is no suitable blogs or documents which are related to generation of Reports using EPM Functions. All are described just in simple syntax way. It is not going to be understand for the beginners.
    Would you please specify in detail step by step.
    Thanks in Advance.
    Siva Nagaraju

    Siva,
    These functions are not used to create reports per se but rather assist in building reports. For ex, you want to make use of certain property to derive any of the dimension members in one of your axes, you will use EPMMemberProperty. Similary, if you want to override members in any axis, you will make use of EPMDimensionOverride.
    Also, EvDRE is not replacement of EPM functions. Rather, you simply create reports using report editor (drag and drop) and then make use of EPM functions to build your report. Forget EvDRE for now.
    You can protect your report to not allow users to have that Edit Report enabled for them.
    As Vadim rightly pointed out, start building some reports and then ask specific questions.
    Hope it clears your doubts.

  • Using modular functions with movieclips

    hi guys, this morning i was looking a tutorial that shows how to make modular functions, the user only used numbers, i was wandering if there is a way to use this with movieclips or childs.
    The example was:
    function addNumber(num1:Number,  num2:Number,  num3:Number):void
    trace(num1+num2*num3);
    addNumber(3, 4, 7);
    i tried using a movieclip called cuadro and triying to move on the x axis, but it didnt work out:
    function mObj(obj1:MovieClip,  num1:Number):void
    obj1.x = num1;
    addNumber(cuadro, 50);
    any sugestion?
    thnks in advance

    oh sorry my bad, i was trying another stuff
    i know that the last line must say
    mObj(cuadro, 50);
    what im trying to do is use the function with some objects in the stage, and for example when i press the first button, it will write mObj(cuadro1, 50) , button2  mObj(cuadro2, 80), so i can use the same function for diferents objects

  • Using Multiple Functions with in members selection of Hyperion Financial St

    Hello everyone, I am trying to retrieve all the level 0 entity members from a specific Level 3 entity member. Can I use multiple Functions with in Report studio to do this?? Or is creating an alt hierarcy my only option?
    Thanks

    You can try doing System Defined member list Lev 0 AND Descendants of Lv 3 member
    JTS

  • How to use TRUNC function with dates in Expression Builder in OBIEE.

    Hi There,
    How to use TRUNC function with dates in Expression Builder in OBIEE.
    TRUNC (SYSDATE, 'MM') returns '07/01/2010' where sysdate is '07/15/2010' in SQL. I need to use the same thing in expression builder in BMM layer logical column.
    Thanks in advance

    use this instead:
    TIMESTAMPADD(SQL_TSI_DAY, ( DAYOFMONTH(CURRENT_DATE) * -1) + 1, CURRENT_DATE)

  • How to use INVOKE function with INT parameter types

    Can you tell me how to use invoke function with int parameter type ?

    Pass the int as an Integer.

  • C++: Is it possible using callback function with ncacn_http and rpcproxy server ?

    I have a remote procedure and I can call it using http over rpc. I pass trough an rpc proxy server for arriving to my rpc server.
    But I cannot call a callback function to my client inside the server function.
    Is it possible using callback function with ncacn_http and rpcproxy server ?
    We are using IIS on windows server 2008 R2 and the server rpc and the client on the same PC with rpc rpoxy.
    If I use ncan_ip_tcp all works fine.
    Thanks
    Gianluca

    Hi,
    About the develop question please post to the MSDN forum.
    MSDN forum Developer Network
    http://social.msdn.microsoft.com/Forums/en-US/home?forum=WAVirtualMachinesVirtualNetwork&filter=alltypes&sort=lastpostdesc
    Thanks for your understanding and support.
    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.

  • Use private function with interface

    I'm working with ActionScript 2 and wanted to use an
    interface for one of my classes. However, the functions that it
    would define should be private in the classes that implement the
    interface. The problem is that I can't define private functions in
    the interface, and if I leave off any scope in the interface
    ("function findAndSetInformation():Void;") and make it private in
    the implementing class ("private function
    findAndSetInformation():Void {...") I get the error: "The
    implementation of the interface method doesn't match its
    definition.

    WHATS UP ?? WHERE IS TEH MODERATOR ?!!!!
    NO REPLY TELL NOW !!!!
    <BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by Yh:
    hi,
    how can i used REPLACE function with LOB database item????!!!1<HR></BLOCKQUOTE>
    null

  • SQL Performance issue: Using user defined function with group by

    Hi Everyone,
    im new here and I really could need some help on a weird performance issue. I hope this is the right topic for SQL performance issues.
    Well ok, i create a function for converting a date from timezone GMT to a specified timzeone.
    CREATE OR REPLACE FUNCTION I3S_REP_1.fnc_user_rep_date_to_local (date_in IN date, tz_name_in IN VARCHAR2) RETURN date
    IS
    tz_name VARCHAR2(100);
    date_out date;
    BEGIN
    SELECT
    to_date(to_char(cast(from_tz(cast( date_in AS TIMESTAMP),'GMT')AT
    TIME ZONE (tz_name_in) AS DATE),'dd-mm-yyyy hh24:mi:ss'),'dd-mm-yyyy hh24:mi:ss')
    INTO date_out
    FROM dual;
    RETURN date_out;
    END fnc_user_rep_date_to_local;The following statement is just an example, the real statement is much more complex. So I select some date values from a table and aggregate a little.
    select
    stp_end_stamp,
    count(*) noi
    from step
    where
    stp_end_stamp
    BETWEEN
    to_date('23-05-2009 00:00:00','dd-mm-yyyy hh24:mi:ss')      
    AND
    to_date('23-07-2009 00:00:00','dd-mm-yyyy hh24:mi:ss')
    group by
    stp_end_stampThis statement selects ~70000 rows and needs ~ 70ms
    If i use the function it selects the same number of rows ;-) and takes ~ 4 sec ...
    select
    fnc_user_rep_date_to_local(stp_end_stamp,'Europe/Berlin'),
    count(*) noi
    from step
    where
    stp_end_stamp
    BETWEEN
    to_date('23-05-2009 00:00:00','dd-mm-yyyy hh24:mi:ss')      
    AND
    to_date('23-07-2009 00:00:00','dd-mm-yyyy hh24:mi:ss')
    group by
    fnc_user_rep_date_to_local(stp_end_stamp,'Europe/Berlin')I understand that the DB has to execute the function for each row.
    But if I execute the following statement, it takes only ~90ms ...
    select
    fnc_user_rep_date_to_gmt(stp_end_stamp,'Europe/Berlin','ny21654'),
    noi
    from
    select
    stp_end_stamp,
    count(*) noi
    from step
    where
    stp_end_stamp
    BETWEEN
    to_date('23-05-2009 00:00:00','dd-mm-yyyy hh24:mi:ss')      
    AND
    to_date('23-07-2009 00:00:00','dd-mm-yyyy hh24:mi:ss')
    group by
    stp_end_stamp
    )The execution plan for all three statements is EXACTLY the same!!!
    Usually i would say, that I use the third statement and the world is in order. BUT I'm working on a BI project with a tool called Business Objects and it generates SQL, so my hands are bound and I can't make this tool to generate the SQL as a subselect.
    My questions are:
    Why is the second statement sooo much slower than the third?
    and
    Howcan I force the optimizer to do whatever he is doing to make the third statement so fast?
    I would really appreciate some help on this really weird issue.
    Thanks in advance,
    Andi

    Hi,
    The execution plan for all three statements is EXACTLY the same!!!Not exactly. Plans are the same - true. They uses slightly different approach to call function. See:
    drop table t cascade constraints purge;
    create table t as select mod(rownum,10) id, cast('x' as char(500)) pad from dual connect by level <= 10000;
    exec dbms_stats.gather_table_stats(user, 't');
    create or replace function test_fnc(p_int number) return number is
    begin
        return trunc(p_int);
    end;
    explain plan for select id from t group by id;
    select * from table(dbms_xplan.display(null,null,'advanced'));
    explain plan for select test_fnc(id) from t group by test_fnc(id);
    select * from table(dbms_xplan.display(null,null,'advanced'));
    explain plan for select test_fnc(id) from (select id from t group by id);
    select * from table(dbms_xplan.display(null,null,'advanced'));Output:
    PLAN_TABLE_OUTPUT
    Plan hash value: 47235625
    | Id  | Operation          | Name | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT   |      |    10 |    30 |   162   (3)| 00:00:02 |
    |   1 |  HASH GROUP BY     |      |    10 |    30 |   162   (3)| 00:00:02 |
    |   2 |   TABLE ACCESS FULL| T    | 10000 | 30000 |   159   (1)| 00:00:02 |
    Query Block Name / Object Alias (identified by operation id):
       1 - SEL$1
       2 - SEL$1 / T@SEL$1
    Outline Data
      /*+
          BEGIN_OUTLINE_DATA
          FULL(@"SEL$1" "T"@"SEL$1")
          OUTLINE_LEAF(@"SEL$1")
          ALL_ROWS
          OPTIMIZER_FEATURES_ENABLE('10.2.0.4')
          IGNORE_OPTIM_EMBEDDED_HINTS
          END_OUTLINE_DATA
    Column Projection Information (identified by operation id):
       1 - (#keys=1) "ID"[NUMBER,22]
       2 - "ID"[NUMBER,22]
    34 rows selected.
    SQL>
    Explained.
    SQL>
    PLAN_TABLE_OUTPUT
    Plan hash value: 47235625
    | Id  | Operation          | Name | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT   |      |    10 |    30 |   162   (3)| 00:00:02 |
    |   1 |  HASH GROUP BY     |      |    10 |    30 |   162   (3)| 00:00:02 |
    |   2 |   TABLE ACCESS FULL| T    | 10000 | 30000 |   159   (1)| 00:00:02 |
    Query Block Name / Object Alias (identified by operation id):
       1 - SEL$1
       2 - SEL$1 / T@SEL$1
    Outline Data
      /*+
          BEGIN_OUTLINE_DATA
          FULL(@"SEL$1" "T"@"SEL$1")
          OUTLINE_LEAF(@"SEL$1")
          ALL_ROWS
          OPTIMIZER_FEATURES_ENABLE('10.2.0.4')
          IGNORE_OPTIM_EMBEDDED_HINTS
          END_OUTLINE_DATA
    Column Projection Information (identified by operation id):
       1 - (#keys=1) "TEST_FNC"("ID")[22]
       2 - "ID"[NUMBER,22]
    34 rows selected.
    SQL>
    Explained.
    SQL> select * from table(dbms_xplan.display(null,null,'advanced'));
    PLAN_TABLE_OUTPUT
    Plan hash value: 47235625
    | Id  | Operation          | Name | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT   |      |    10 |    30 |   162   (3)| 00:00:02 |
    |   1 |  HASH GROUP BY     |      |    10 |    30 |   162   (3)| 00:00:02 |
    |   2 |   TABLE ACCESS FULL| T    | 10000 | 30000 |   159   (1)| 00:00:02 |
    Query Block Name / Object Alias (identified by operation id):
       1 - SEL$F5BB74E1
       2 - SEL$F5BB74E1 / T@SEL$2
    Outline Data
      /*+
          BEGIN_OUTLINE_DATA
          FULL(@"SEL$F5BB74E1" "T"@"SEL$2")
          OUTLINE(@"SEL$2")
          OUTLINE(@"SEL$1")
          MERGE(@"SEL$2")
          OUTLINE_LEAF(@"SEL$F5BB74E1")
          ALL_ROWS
          OPTIMIZER_FEATURES_ENABLE('10.2.0.4')
          IGNORE_OPTIM_EMBEDDED_HINTS
          END_OUTLINE_DATA
    Column Projection Information (identified by operation id):
       1 - (#keys=1) "ID"[NUMBER,22]
       2 - "ID"[NUMBER,22]
    37 rows selected.

  • Count() function with selective criteria?

    I'm struggling with what I would expect to be a fundamental reporting concept in CR.
    Suppose I have the following EMPLOYEE table:
    u2022 EMPLOYEE.ID
    u2022 EMPLOYEE.GENDER_CODE
    u2022 EMPLOYEE.MANAGER_FLAG
    I need to generate a statistical summary report containing the following:
    u2022 Total number of Employees
    u2022 Number of Male Employees
    u2022 Number of Management Employees
    This would be easy if I could just use a Count() function in the Function Workshop which
    contained selective criteria.  For example:  Count ({EMPLOYEE.GENDER_CODE} = 'M')
    But I can't figure out how to do this without getting a CR error message.
    Record Selection doesn't work, because I need the whole data set.
    Group Selection with Summaries doesn't work, because the gender and management
    attributes are not mutually exclusive.
    One solution that seems awkward to me is to create additional SQL commands in the
    Database Expert using COUNT(*) and WHERE criteria to get the number of Males
    and number of Managers.  But I have to believe that there is a better way.  Plus this
    approach causes problems elsewhere in my report.
    Am I missing something?
    Thanks,
    Bill

    Thanks Raghavendra!
    The good news is that I was able to create a "1 or 0" formula and then sum the resulting values.
    The bad news is that I'm only able to get this to work for part of my report.
    I am joining two tables.  As an example COMPANY and EMPLOYEE.
    I can use "1 or 0" formulas on all of the employee statistics.
    But I cannot do the same for company statistics, because the number of company records being assigned a 1 is being inflated by the join between the two tables.
    I have achieved a successful result by using Running Total Fields at the end of the report.
    But I want to place these summary statistics at the begining of my report.  (Such as Total Companies in the Western Region.)
    I tried to use "COMPANY.NAME = previous(COMPANY.NAME)" logic in my function, but then I was not allowed to summarize it.
    Any ideas?
    Thanks,
    Bill

Maybe you are looking for

  • (sigh) Can someone please help??? I'm ready to throw in the towel on my SECOND Mic

    So my first Zen Micro froze on me. No amount of tech support could save it. I returned it and received a new replacement. Within days my replacement had begun to freeze, and I would bravely pull out the battery and reboot it. I think (keep your finge

  • Problem "Unable to find resource" in SAP PI 7.0 Sp12

    Hi Experts - We are experiencing below problem in SAP PI 7.0 SP 12. Objects are available in the system and cache notifications are green. Even after multiple attemps messages are not processing. Is there any resolution action we can take? Details be

  • OS X Mavericks downloading for 2 days?

    It has barely moved and I have no idea why. How do I restart or correct this? Is anyone else having the same problem?

  • Program problem

    I can not send email from my phone.  Everything else works fine.  After hitting the send command the phone attempts to send the message for 3-5 sec. and then a red X appears next to the unsent message in the message box.  How do I fix????

  • Not serious, but strange behaviour

    Hi. I say not serious, but if it happens to all my other photos it could be! Went to edit a photo, and when I pulled up the editing tools to make an adjustment, there was nothing at all in the histogram and none of the sliders had any effect. And all