Aggregate on logical column

Hi:
I was testing two column, ID and Value like this:
ID   Value
1     -2
2     -1
2      2
and the aggregate type for <b>Value</b> is Sum. So in the report, it will looks like:
ID   Value
1     -2
2      1
It's OK. Then I define a logical column, <b>Calc</b> is:
case when Value < 0 then Value else 0 end
So I think the computed column should be:
ID   Value   Calc
1     -2     -2
2     -1     -1
2      2      0
And then in the report page, it was expect to showed:
ID   Value   Calc
1     -2     -2
2      1     -1
But actually, I got:
ID   Value   Calc
1     -2     -2
2      1      0
Why this happened?
Thanks!

This is basically good example for condition after aggregation. Condition is applying after the total, thats why it is showing 0. For the 2nd row sum is 1 which is greater than 0, so it is showing 0.
If you want to avoid this, One solution would do the calculation in the RPD, Use physical columns in calculations. You will get the out put as expected.
- Madan

Similar Messages

  • Display values for logical columns with several physical sources

    Hi all,
    I'm enocuntering some strange behaviour with the values displayed for a column (when we want to add it a as a filter, and in the dialogue box select 'Show All' values).
    Basically the logical column is mapped against several physical columns as the base fact table is aggregated to different levels. Additionally, one column in the fact tables has an attribute value, and these vary between the aggregated and non-aggregated table. This is not a problem.
    In the production environment, when we display the all values in the filters prompt for this column we are seeing the values being taken from one fact table. Naturally this means that not all the values possible for this column are being shown (i.e. values from the aggregated fact tables are missing). Now in one of our test environment where those fact tabels have additional data loaded, the values are being taken from one of the other fact tables. Unfortunately it is not necessarily the fact table with less data.
    My questions are:
    a) What dictates which fact table the server will use when the query in Answers doesnt use any dimensions (i.e. we are selecting just this attribute and selecting all the possible values by which it can be filtered)?
    b) Is there a way of obtaining all the values from the differente physical columns? I.e. that the display values shows the values of that logical column across all the physical fact tables? Maybe we would need to model that attribute as a logical dimension just for that attribute? Im not really sure this would work, as at the physical level the join between the dimension and fact would still have to go to only one particular fact table.
    Any info or help is much appreciated.

    Hi,
    Aggregate tables exist at physical level and are created by ETL procedures. Although i am aware that the dimension come into play when the application needs to decide which source aggregate table to use, it is not an issue here as in our query we are not involving dimensions. We are selecting just this one columen, and then the filter option on this column, then in the dialogue box we select 'All Choices', only the values from one of the source tables is being shown.
    This is not a probelm within reports, i think it is a product limitation in that in that option to list all values a user can filter by, it is not possible to display all the values from the different fact tables to which that column is mapped.
    Has anyone else encountered this behaviour?

  • How To Create Logical column For Lastyear To Till Date

    Hi All,
    I Have to calculate Lastyear to Till Date for Logical Column.
    Ex:I have Time Dime and Fact column and Dimension columns.
    jan 2011 to oct 2012.
    Please Let me know.
    Thanks,
    Abhi

    Looks like you are not reading my messages
    Since you are doing on logical columns getting this error.
    Try this using physical columns then count from aggregate tab
    CASE WHEN "Oracle Data Warehouse"."Catalog"."dbo"."Fact_W_SRVREQ_F_Open_Date"."OPEN_DT_WID" > 20110101 THEN "Oracle Data Warehouse"."Catalog"."dbo"."Fact_W_SRVREQ_F_Open_Date"."SR_WID" END
    The same you can go with your variable
    Or else the same can do by duplicating the existing Fact - CRM - Service Request"."# of SRs" and just add above code.
    or just use the below you dont use sum since already aggregation is happend for # of SRs
    CASE WHEN "Core"."Dim - Date"."Year" = VALUEOf("Warehouse Refresh Date Last Year"."CURRENT_CALENDAR_YEAR_LAST_YEAR") AND "Core"."Dim - Date"."Date" < VALUEOF("Warehouse Refresh Date Last Year"."LAST_REFRESH_DATE_LAST_YEAR") THEN "Core"."Fact - CRM - Service Request"."# of SRs" END
    Hope this works, mark as correct

  • Create two logical columns with same LTS mapping but diff filter conditions

    Hi,
    Problem:
    How to create two logical columns within same logical table mapped to same physical column but different filter conditions?
    I have a scenario where in,
    Physical layer columns
         - table1.employee
         - table1.emp_city
    I need a columns in logical layer:
    Logical layer - lt1.count_emp_delhi (counts distinct employees whose city_name = 'Delhi')
              lt1.count_emp_mumbai(counts distinct employees whose city_name = 'Mumbai')
    My approach:
    For Delhi column
    1. Create a logical column lt1.count_emp_delhi mapped to the physical column table1.employee
    2. Aggregate using countdistinct in aggregate tab.
    3. Edit the mapping condition
         3.1. Use the where clause and set table1.emp_city='Delhi'.
    For Mumbai column.
    Followed the same approach as above but in 3.1 if I change the condition to 'Mumbai', even the delhi column is populated with mumbai count which is ERRONEOUS
    Could some one please help?

    Hi,
    1. Create two alias tables for table1 in Physical Layer. Lets say TB_Mumbai and TB_Delhi
    2. Create a logical table in BMM layer (D1 Employee Cities )
    3. Drag and drop the employee & emp_city columns from both alias tables (TB_Mumbai and TB_Delhi ) into your newly created logical table.
    4. Now you can see two Logical Table Sources (TB_Mumbai and TB_Delhi )
    5. Now using Where condition, write the condition on each table
    NOTE: Don't write any condition on the Physical table Table1.
    Hope it helps you.
    Regards,
    Kalyan Chukkapalli
    http://123obi.com

  • Two physical logical source formulas for on logical column

    I have two fact tables :
    1. W_SERVICE_REQ_F(opened_dt_wid, assigned_dt_wid, closed_dt_wid, QUEUE_WID, SERVICE_REQ_WID): grain is one row per service request
    2. W_SERVICE_REQ_DAY_A(DATE_WID, QUEUE_WID, NUM_OPENED, NUM_CLOSED, num_assigned)
    The goal is to answer NUM_OPENED, NUM_CLOSED per queue in a day and be able to drill-down to those service requests.
    Physical model:
    Common_Date.row_wid = W_SERVICE_REQ_F (Opened_Dt).opened_dt_wid
    Common_Date.row_wid = W_SERVICE_REQ_F (Closed_Dt).closed_dt_wid
    Common_Date.row_wid = W_SERVICE_REQ_DAY_A.DATE_WID
    Queue_d.row_wid = W_SERVICE_REQ_F.QUEUE_WID
    Queue._drow_wid = W_SERVICE_REQ_DAY_A.QUEUE_WID
    Service_req_d.row_wid = W_SERVICE_REQ_F.SERVICE_REQ_WID. (there is no join between Queue_d and Service_req_d)
    BMM Fact and LTSs:
    I have W_SERVICE_REQ_DAY_A, W_SERVICE_REQ_F (Opened_Dt), W_SERVICE_REQ_F (Closed_Dt) as LTSs of "Fact - Service Request" in that order.
    BMM Fact logical columns (measures):
    # Closed
    # Opened
    Question:
    I want to configure each of the above logical column with two physical columns of different aggregate forumlas. (to ensure queries that dont need service req number hit a table) (similar to http://www.gerardnico.com/wiki/dat/obiee/fragmentationlevel_based).
    SUM(W_SERVICE_REQ_DAY_A.NUM_CLOSED)
    COUNT("W_SERVICE_REQ_F (Closed_Dt)".SERVICE_REQ_WID)
    Can someone help in configuring one logical column with two physical column sources with different aggregate formulas?
    This is what I tried:
    In # Opened Properites->Data Type, mapped it to both W_SERVICE_REQ_F (Closed_Dt).ROW_WID and W_SERVICE_REQ_DAY_A.NUM_CLOSED
    In # Opened Properties->Aggregation tab, selected 'Default aggregation rule' as Count Distinct. In the bottom, Logical table sources override as follows:
    W_SERVICE_REQ_DAY_A : SUM("Fact - Service Request"."# Closed")
    W_SERVICE_REQ_F : COUNT("Fact - Service Request"."# Closed")
    Should it be done in a different way?
    PS: OBIEE 10.1.3.4.
    added OBIEE version: Feb 3, 2012 4:40 PM

    I have two fact tables :
    1. W_SERVICE_REQ_F(opened_dt_wid, assigned_dt_wid, closed_dt_wid, QUEUE_WID, SERVICE_REQ_WID): grain is one row per service request
    2. W_SERVICE_REQ_DAY_A(DATE_WID, QUEUE_WID, NUM_OPENED, NUM_CLOSED, num_assigned)
    The goal is to answer NUM_OPENED, NUM_CLOSED per queue in a day and be able to drill-down to those service requests.
    Physical model:
    Common_Date.row_wid = W_SERVICE_REQ_F (Opened_Dt).opened_dt_wid
    Common_Date.row_wid = W_SERVICE_REQ_F (Closed_Dt).closed_dt_wid
    Common_Date.row_wid = W_SERVICE_REQ_DAY_A.DATE_WID
    Queue_d.row_wid = W_SERVICE_REQ_F.QUEUE_WID
    Queue._drow_wid = W_SERVICE_REQ_DAY_A.QUEUE_WID
    Service_req_d.row_wid = W_SERVICE_REQ_F.SERVICE_REQ_WID. (there is no join between Queue_d and Service_req_d)
    BMM Fact and LTSs:
    I have W_SERVICE_REQ_DAY_A, W_SERVICE_REQ_F (Opened_Dt), W_SERVICE_REQ_F (Closed_Dt) as LTSs of "Fact - Service Request" in that order.
    BMM Fact logical columns (measures):
    # Closed
    # Opened
    Question:
    I want to configure each of the above logical column with two physical columns of different aggregate forumlas. (to ensure queries that dont need service req number hit a table) (similar to http://www.gerardnico.com/wiki/dat/obiee/fragmentationlevel_based).
    SUM(W_SERVICE_REQ_DAY_A.NUM_CLOSED)
    COUNT("W_SERVICE_REQ_F (Closed_Dt)".SERVICE_REQ_WID)
    Can someone help in configuring one logical column with two physical column sources with different aggregate formulas?
    This is what I tried:
    In # Opened Properites->Data Type, mapped it to both W_SERVICE_REQ_F (Closed_Dt).ROW_WID and W_SERVICE_REQ_DAY_A.NUM_CLOSED
    In # Opened Properties->Aggregation tab, selected 'Default aggregation rule' as Count Distinct. In the bottom, Logical table sources override as follows:
    W_SERVICE_REQ_DAY_A : SUM("Fact - Service Request"."# Closed")
    W_SERVICE_REQ_F : COUNT("Fact - Service Request"."# Closed")
    Should it be done in a different way?
    PS: OBIEE 10.1.3.4.
    added OBIEE version: Feb 3, 2012 4:40 PM

  • BMM derived logical column - bounced visit

    In Web Metrics, a "bounced visit" is when a session views only one page on a website and then leaves. In my fact table, I capture the "total pages" viewed for each session and I define this metric in my Business Model with an aggregation rule of "sum". I'm trying to use this metric to derive the "bounced visit" metric but I'm running into issues.
    Session ID Total Pages
    1179860475     5
    1179861625     1 <= This is a bounced visit
    1179861920     7
    1179866260     2
    1179868693     13
    If I define "bounced visits" as
    CASE WHEN "total pages" = 1 THEN 1 ELSE 0 END
    What I see in the session logs is:
    CASE WHEN sum("total pages") = 1 THEN 1 ELSE 0 END
    The aggregation of the "total pages" is being done first and then the derived metric is being calculated. This leads to incorrect results. Is there anyway of solving this in the business model? I know that I can go back to the ETL, calculate a "bounce visit" metric, store it in the fact, build out aggregates, etc. I was looking for a short term solution.
    Other things I've tried:
    1) make a copy of the "total pages" column and turning off the aggregation, call it "total pages - no aggregation"
    this leads to queries of the form:
    select distinct T22583.TOTAL_PAGES as c1
    from
    WEB_SESSIONS_A1 T22583
    order by c1
    2) Create a logical column based on "total pages - no aggregation"
    bounced visit = CASE WHEN EnterpriseWarehouse."Web Sessions"."Total Pages - no aggregation" = 1 THEN 1 ELSE 0 END
    This leads to [nQSError: 14020] None of the fact tables are compatible with the query request Web Sessions.bounced visit.

    Cool. I now have two approaches to solve the problem. Thanks for your help. Using your technique, the new logical column shows up in the Logical Table Source screen and I can define an expression for that logical column. The second approach leaves the table type as a Physical table. This has some benefits as I've noticed that the queries that are generated when the table type is defined as a Select statement end up retrieving all of the columns, even though I only needed to act on one of them.

  • Logical Column Aggregation

    I have CurrentDollars and CurrentUnits in my measures table, and I"ve created PriorDollars and PriorUnits logical columns utilizing the AGO function. Since 'Use existing logical columns as the source' is checked, I don't have access to the Aggregation tab, and everything I've read leads me to believe that this is OBIEE's way of forcing inheritance of the aggregation rule of the 'source' column.
    Problem is, the Prior* columns don't aggregate (sum). If I create a report with Year, CurrentDollars, CurrentUnits, I get three rows... one row for each year that has data. That's what I want. But when I add either of the Prior columns, I get 52 rows per year (since my data is at the week level). If I wrap either of the Prior columns in SUM, it sums all Prior* column values. If I check the box that says I want it to use Sum aggregation, nothing changes. I get similar bogus results if I add a SUM function around the original AGO function.
    This is a real drag. Am I missing something obvious? Some blogs lead me to think that this is a known bug. Does anyone have a workaround?
    Edited by: Tom G. on Aug 26, 2009 11:30 AM

    Hi,
    What is the source for AGO measures PriorDollars and PriorUnits?
    AGO(CurrentUnits, '?',?)
    AGO(CurrentDollars, '?',?)
    Have you set up hierarchy correctly (because you said that the granularity in your fact table is at week grain) and it should be like this:
    Fiscal Year > Fiscal Quarter > Fiscal Month > Fiscal Week
    It depends on how did you define your TIME dimension.
    Try maybe like this:
    PriorYEARDollars = AGO(CurrentUnits, 'YEAR',1)
    and the same for
    PriorYEARUnits =AGO(CurrentDollars, 'YEAR',1)
    Now, if you put in the report
    YEAR
    CurrentUnits
    CurrentDollars
    PriorYEARUnits
    PriorYEARDollars
    you'll get only three rows (for 3 years) with PRIOR YEAR measures.
    Try it.
    A good reference for understanding AGO:
    http://obiee101.blogspot.com/2008/11/obiee-ago-and-todate-series.html
    Also you need to set chronological key correctly for TIME dimension.
    Regards
    Goran
    http://108obiee.blogspot.com

  • How to create Measue Logical Column in fact?- urgent

    Hi All,
    In BMM Layer i have 2 Fact Tables with Different Sources .
    Fact - Fact1
    X1
    Fact - Fact2
    Y1
    But now I want to create Logical Column in 'Fact - Fact 2' as follows
    Z1 = X1 + Y1
    But Once aftre cretaion of that Column , from the Report side i can able to see the data only if the report contains Z1 Attribute alone.
    But if the report contains any other attribute along with Z1... that Z1 doesnt have any Data .. its Blank.
    How can i resolve this issue ?

    Have you all conformed dimensions between the two facts?

  • At max how many logical columns can be created in RPD

    Hi All,
    At max how many logical columns can be created in RPD. I have a requirement of creating 200 columns. Will there be any problem .
    Is there any predefind number of columns for RPD creation??
    Please help ..

    Hi Annapurna,
    There's no limit that I'm aware of or which is mentioned anywhere. Just as an example: I have a logical fact table with around 750 logical columns (>500 original measures & 250 derived measures). No issue whatsoever. Opening the presentation table through answers takes about 2-3 seconds (the NQSQL command has a lot to retrieve), but that's about it.
    Cheers,
    C.

  • How to change the variable value at run time in logical column in RPD

    for e.g..
    i have used a session variable in logical column in rpd in case statement. now in dashboard prompt i am using that variable to store data which user is passing but the data captured is not getting reflected in the logical column.
    its been always populated with the default value passed through the initilization block..

    resolved myself

  • Why logical column in terms of other logical columns and not physical sourc

    Hello
    Can someone shed some light that in what scenario ..defining a logical column in terms of other logical column is beneficial compared to defining logical column in terms of physical sources?
    I found something on google that said defining in terms of logical columns is like one time thing. I dont understand, even if you define in terms of physical source that' too one time.
    In both the case we build an expression specifying which logical or physical columns.
    Thank you

    well logical columns from physical source, if in logical fact table you can set aggr rules. Logical columns based on other logical columns you can not. Logical columns based on other logical columns will inherit the aggr rules. So for instance, if you create col1 and col2. Both based off physical and both having sum aggr rule. If you create logical column col3 based off these two as such "col1"/"col2" it will produce the following sum(col1)/cum(col2). Now if you really wanted sum(col1/col2) then you should have made col3 based off physical as col1/col2 with aggr rule of sum.
    Also of some note, all logical columns based off physical will be performed in the inner most query. So for my example above to get col3 where it is logical col1/logical col2 or sum(col1)/sum(col2) the physical query will be:
    select D1.c1/D1.c2
    from (
    select sum(col1) as c1,
    sum(col2) as c2
    from tableA
    ) D1
    So my short summary of this, is what or how do you want your sql to be created. Based on this can you lead you to your answer of whether to use logical col based on physical or other logical columns. And unltimately, check the sql generated from your work to ensure the sql queries generated are what you want and expect.
    I hope this helps!

  • How to create logical columns for current period and prior period

    Hello all.
    Is there any way in obiee to create a new logica column in BMM layer that says "CURRENT PERIOD" AND "PRIOR PERIOD" OR ONE SINGLE COLUMN THAT SAYS "PERIOD".
    In those columns what I need is if it a current period column it shoould have 03/01/2012-03/31/2012 (this month date range)
    and in prior period column I shouldhave 02/01/2012 -02/29/2012(which is previous month date range).These columns I will be using in my reports.
    Please help me if we can create any such columns with these conditions/requirements

    Hi,I have already created he dynamic variables.But I am not getting how to use those variables and create the new logical columns in bmm layer.
    this is what I am trying
    case when VALUEOF("Current Month begin date"."Current Month begin date") ='..' and VALUEOF("Current Month end date"."Current Month end date")
    ='..' then 'current period' end
    I don't really understand what I should write case when VALUEOF("Current Month begin date"."Current Month begin date") ='..'??

  • Logical Column(s) a.k.a. Pre-calculated Measures

    I am looking for best practices around logical columns either in Presentation Layer or Business Layer. Specifically I want to know..
    1) Is it advisable to have logical columns?
    2) How many are good to have? Should one create logical columns for all frequent calculations which are done on dashboards?
    3) Are there any performance implications?
    4) Can we use Time Series function with logical columns? Like AGO etc.
    In short I am looking for intelligent pros and cons of such implementations.
    PS: Logical columns are derived from physical columns. For e.g. Profit = Income - Expense.
    Regards.

    Hi
    1) all complex logic should be in the BMM layer in the RPD. Yes, it's advisable to have them in the BMM. Although another good practice is to try to delegate all complex calculations to ETL if possible.
    2) As many as deemed necessary. Yes.
    3) No, not really. But if you use Answers' logical columns - you have to be creative in propagating them to other reports.
    4) Yes you can. But again, this is something that's better to have in the RPD.

  • Logical Columns - Running Sum & 3Month Rollover

    Hi All,
    Need to build a logical column.
    I have a column with number of units (count distinct) in RPD.
    I need to build a new logical column in the REPOSITORY , such that it has running sum values.... sothat when i pick this #units column and months column in the ANSWERS...I need to get roll over of all previous values for first month.
    Say Jan ---> XXXX units ( summation of all previous available units - few years)
    Feb----> YYYY units ( sum of till jan values & Feb units)
    Mar----> ZZZZ ...etc ( sum of till Feb values & Mar units) so on.
    Based on this newly built column I need to build another column of " 3 months roll over " column.
    Replies appreciated.
    Thanks in advance.

    Hi user11939829m
    So help me understand your new measures a little better. For the sake of this post, let's say your data is like so
    Month Year -- Units
    Jan 2010 -- 1
    Feb 2010 -- 2
    Mar 2010 -- 3
    Apr 2010 -- 4
    May 2010 -- 5
    Jun 2010 -- 6Then let's say you have a report with the above columns and the new running sum columns.
    Month Year -- Units -- Running Sum Units
    Jan 2010 -- 1 -- 1
    Feb 2010 -- 2 -- 3
    Mar 2010 -- 3 -- 6
    Apr 2010 -- 4 -- 10
    May 2010 -- 5 -- 15
    Jun 2010 -- 6 -- 21Now what exactly would your three months rollover be? Would the 3 month rolling sum = running sum for current month + running sum for last month + running sum for last last month?
    i.e.
    Month Year -- Units -- Running Sum Units -- 3 Month Rolling Sum
    Jan 2010 -- 1 -- 1 -- 1
    Feb 2010 -- 2 -- 3 -- 4
    Mar 2010 -- 3 -- 6 -- 10
    Apr 2010 -- 4 -- 10 -- 19
    May 2010 -- 5 -- 15 -- 31
    Jun 2010 -- 6 -- 21 -- 46Not sure what value such a measure would add. Or do you mean 3 month rolling sum would be the running sum for just the last three months (like below)? This makes more sense but in your description, you indicated that you'd build the 3 month rolling sum off of the running sum which confused me a bit.
    Month Year -- Units -- Running Sum Units -- 3 Month Rolling Sum
    Jan 2010 -- 1 -- 1 -- 1
    Feb 2010 -- 2 -- 3 -- 3
    Mar 2010 -- 3 -- 6 -- 6
    Apr 2010 -- 4 -- 10 -- 9
    May 2010 -- 5 -- 15 -- 12
    Jun 2010 -- 6 -- 21 -- 15 Is that what you are going for? Please elaborate.
    Best regards,
    -Joe

  • Logical column currency format properties at rpd level?

    I need to show the currency amount with dollar symbol for a logical column and that should happen at rpd level.
    Is there anyway we could do that ?
    thank you

    Hi User.
    You can have logical column name as 'Amount in $' or 'Amount in Dollar'
    this is the best practice..
    Then if you want value to be suffixed by $ , you can go for data formatting in column properties.....
    this is commonly used....
    mark if Correct/helps .
    fiaz

Maybe you are looking for