Non-additive measure

Hi,
I'm just learning OBIEE and have this logical modelling question.
Let's say that I have a fact table. The grain of this fact table is day/product/price. So there is one row per day per product and the price of the product on that day. Price obviously is a non-additive measure. The nature of this measure is actually the problem....it can't be summed across time. Lets call this table price_history table.
In BMM, I have a time dimension and product dimension and the above described fact table.
Here's what I want to acheive:
An answers request which will show me the price at the end of the period. For example, if I select Year from the time dimension, Product Name from the product dimension, and then price from the price_history table, I should get:
2008 Product A $1.00
2008 Product B $2.00
2009 Product A $3.00
2009 Product B $4.00
where $1.00 is the price of Product A on 12/31/2008, $2.00 is the price of product B on 12/31/2008, $3 is the price of product A on 9/22/2009 (9/22/2009 is the latest row for Product A in price_history table), $4 is the price of product B on 9/22/2009 (9/22/2009 is the latest row for Product B in price_history table)
Subsequently, I want to click on the year, and have OBIEE drill down into the data, and split it by Quarters:
2008 Q1 Product A $1.25 ( the price at the end of Q1 2008)
2008 Q2 Product A $1.27 ( the price at the end of Q1 2008)
2009 Q4 Product B $8.00 (the most current price)
I know this is a lot.....but does anybody have an idea on how one would go about modelling this situation???

the problem is I want the measure to be additive across total product/prod category/sub prod category (as long as the sum involves prices for only ONE day). But across time I want to apply the LAST aggregation method. In other words, the SUM of all product prices with rollup to PROD CATEGORY/SUBCAT is a valid business query as long as the TIME dimension grain is a day. When the time dimension grain goes up month/quarter/year then I want the LAST price to be picked up for the time frame involved and then summed up to total product/prod category/subcategory.
Going back to what you suggested. If I create a level based measure (with LAST aggregation) at the product subcategory level, it will only pick up the PRICE for the LAST product in that subcategory which is not what I want. I want subcategory to be the sum of all prices for the LAST day in the time period selected (the last day of the month, quarter, year, day).
I'm beginning to suspect that this is not possible because there's a flaw in data model.....Any help is appreciated.

Similar Messages

  • Best Way To Handle Non Additive Measures

    I am developing a cube looking at total reservations created against a daily allocation by customer. So lets say I am looking at these measures at the lowest level and show location X for Customer Y with an allocation of 100 and total reservations made as 50. Everything here is OK. My issue comes when I roll up to look at just the location. It is taking the allocation and summing this value but I need this value to remain static at all levels. Is there a way to set an accounts measure to never aggregate? I have tried a few different settings such as NEVER SHARE and setting the member aggregation properties to <NONE> in my OLAP model and it continues to aggregate at all levels. I have alos tried adding this as a dimension but because the value is numeric and because I have a few additional allocation measures that can have the same values, I have issues with duplicates. As additional info.....I am building this using EIS. It's entirely possible that I am approaching this the wrong way so any feedback would be appreciated. I can provide more detail if needed.
    Thanks,
    Bob

    Why don't you put the Account that stores the allocated amount in its own special hierarchy? This hierarchy might have Gen2 parent called "Allocate" with a label only tag and below that a series of ~ tagged members underneath. Give it a goofy name so that there can be no question of the Account's purpose, e.g., Reservations - To Be Allocated.
    Your post doesn't indicate what tool you're using for input, but have a separate sheet/form/schedule for the input of the amount to be allocated, have the user enter that amount, save it, and have a calc/HBR launch on save that does the allocation.
    Then your second view of the data (form, report, etc.) doesn't include that Account and no-one's the wiser. You haven't lost original input data and since the forecaster looks at the "real" Accounts hierarchy except when inputting data to be allocated, he'll see the spread numbers only.
    The only thing I might add to this approach is a series of dedicated Location members that receive the allocated number but that's really a design preference more than anything.
    Regards,
    Cameron Lackpour

  • Sliced metrics with non-additive measures

    Post Author: jmdupreez
    CA Forum: Performance Management and Dashboards
    I have a sliced metric for a actual say X with the sliced dimensions A,B and C. This is an additive metric, thus A + B + C rolls up into the global slice. I have used the CI_PROBE universe to take the aggregated values of X to determine the average value say Y on a 7 day rolling basis for each day for each slice of X (A,B,C) in so to create a means of having thresholds based on these values. The issue is that these measures do not roll up as they are averages.... Does anyone know a better way of creating this scenario without having the global slice rolled up incorrectly. Thanks

    Thanks for replying. Since the requirement needed diff values at different levels, in the calc script, I fixed on dimensionsI want to include & it works great for a really small set of data. When I load the actual data file & try to calc, it comes up with the following essbase error.I tried to increase the datacache size but the error does not go away. Does anyone have any suggestion on why it works for a subset of data and what needs to be done to over come the error.Thanks a lot.-Nithya[Fri Apr  5 09:59:18 2002]Local/CPTest2/Cptest2/nvenka/Serious Error(1008110)Unable to Allocate Memory. Refer to the Application Log for details.[Fri Apr  5 09:59:18 2002]Local/CPTest2/Cptest2/nvenka/Info(1008112)Memory Allocation error codes: O/S error = [12], O/S return code = [0].[Fri Apr  5 09:59:18 2002]Local/CPTest2/Cptest2/nvenka/Info(1008114)Allocation request for [1481760000] bytes of virtual memory. Percentage of memory in use is [28%].[Fri Apr  5 09:59:18 2002]Local/CPTest2/Cptest2/nvenka/Info(1008116)Total swap space is [25652363264] bytes. Available swap space is [18546425856] bytes.[Fri Apr  5 09:59:18 2002]Local/CPTest2/Cptest2/nvenka/Info(1008119)Memory page size is [4096] bytes.[Fri Apr  5 09:59:18 2002]Local/CPTest2/Cptest2/nvenka/Error(1019003)Unable To Read Information From [db2olap/app/CPTest2/Cptest2/Cptest2.otn][Fri Apr  5 09:59:18 2002]Local/CPTest2/Cptest2/nvenka/Error(1007119)Loading New Outline for Database [Cptest2] Failed[Fri Apr  5 09:59:19 2002]Local/CPTest2/Cptest2/nvenka/Error(1042012)Network error [32]: Cannot Send Data

  • Cube with non-additive measures

    Dimension "Dim_Geography" has levels ZIP_CODE -> CITY -> STATE
    e.g. 12345 -> Schenectady -> NY
    Dimension "Dim_Store" has levels STORE -> STORE_BRAND -> STORE_LINE
    e.g. "Cathy's Fashions #1234" -> "Cathy's Fashions" -> "Clothing, Women's"
    Dimension "Dim_Calendar" has levels DAY -> WEEK -> MONTH -> QUARTER -> YEAR (assume 4-4-5 calendar to make roll-up work nicely)
    (No example given, it's just a calendar)
    Fact "Fact_Visits" has dimensionality <Dim_Geography, Dim_Store, Dim_Calendar> and measures Visitor_Count and Visitor_Value.
    The fact is based on a table called "TBL_VISITS" having columns (Geog_ID, Store_ID, Cal_ID, Person_ID, Visitor_Value, Visit_Timestamp), all of which are integers except the last which is a timestamp.
    Visitor Value is a number that was calculated earlier and represents a unit value of the visitor. Visitor Value changes daily for each Person_ID. When querying for any level of Calendar other than DAY, the correct Visitor Value is the last one seen for the Person_ID within a given week/month/quarter/year. If no level of Calendar is queried, the last Visitor Value is the correct one.
    A row in this table represents a single visit of the person to the store in that zip code. A given Person_ID can appear many times in a day in any given store in any given zip code. Assume we can tell visitors apart so that we can populate "Person_ID" properly.
    I can create a series of views that collapses TBL_VISITS to obtain the correct Visitor_Count and Visitor_Value at any combination of dimensionality. (Obviously, I can't create a view that collapses them all.)
    Example:
    CREATE VW_FACT_BY_DAY_STORE AS
      SELECT cal_id, store_id, SUM(v_visitor_value) as visitor_value, SUM(v_visitor_count) as visitor_count
        FROM (SELECT cal_id, store_id, person_id, SUM(visitor_value) / SUM(1) as v_visitor_value, SUM(1) as visitor_count
                    FROM tbl_visits
                  GROUP BY cal_id_store_id, person_id
                 )The more complicated views (i.e. views omitting or having higher calendar dimensionality), I can compose with analytical functions. The number of views is big (essentially, all possible combinations of dimension levels), but not unmanageable.
    A long winded setup for a bunch of short questions:
    1. How do I specify all that in AWM?
    2. Can AWM handle the outer joins for views that drop out one or more dimensions?
    3. Is there anything special I should do?
    4. Am I crazy for wanting to do this???
    THANKS !!!

    Thanks for replying. Since the requirement needed diff values at different levels, in the calc script, I fixed on dimensionsI want to include & it works great for a really small set of data. When I load the actual data file & try to calc, it comes up with the following essbase error.I tried to increase the datacache size but the error does not go away. Does anyone have any suggestion on why it works for a subset of data and what needs to be done to over come the error.Thanks a lot.-Nithya[Fri Apr  5 09:59:18 2002]Local/CPTest2/Cptest2/nvenka/Serious Error(1008110)Unable to Allocate Memory. Refer to the Application Log for details.[Fri Apr  5 09:59:18 2002]Local/CPTest2/Cptest2/nvenka/Info(1008112)Memory Allocation error codes: O/S error = [12], O/S return code = [0].[Fri Apr  5 09:59:18 2002]Local/CPTest2/Cptest2/nvenka/Info(1008114)Allocation request for [1481760000] bytes of virtual memory. Percentage of memory in use is [28%].[Fri Apr  5 09:59:18 2002]Local/CPTest2/Cptest2/nvenka/Info(1008116)Total swap space is [25652363264] bytes. Available swap space is [18546425856] bytes.[Fri Apr  5 09:59:18 2002]Local/CPTest2/Cptest2/nvenka/Info(1008119)Memory page size is [4096] bytes.[Fri Apr  5 09:59:18 2002]Local/CPTest2/Cptest2/nvenka/Error(1019003)Unable To Read Information From [db2olap/app/CPTest2/Cptest2/Cptest2.otn][Fri Apr  5 09:59:18 2002]Local/CPTest2/Cptest2/nvenka/Error(1007119)Loading New Outline for Database [Cptest2] Failed[Fri Apr  5 09:59:19 2002]Local/CPTest2/Cptest2/nvenka/Error(1042012)Network error [32]: Cannot Send Data

  • "Semi/Non additive measure with" : "LastChild Across All Dimension" OR "LastChild Across Time and MAX across All Other Dimension"

    Hey All
    I am using the SQL SERVER 2008R2 standard edition so please be mindful when posting any suggestion if that will work on this edition or not.
    Here is the situation: I have Cube with one fact table "Positions". Measure I am querying is "AUM" and Dimensions across user can query are combinations of {"Portfolio", "Security" and "Time"}.
    I am receiving the "AUM" values at "portfolio+Security+Time" level. AUM is actually the Portfolio level value. so sample data I receive would like this.
    PORTFOLIO SECURITY TME AUM
    A SEC1 JAN-1 100
    A SEC2 JAN-1 100
    B SEC1 JAN-1 200
    B SEC3 JAN-1 200
    A SEC1 JAN-2 300
    A SEC2 JAN-2 300
    B SEC1 JAN-2 400
    B SEC3 JAN-2 400
    So, as shown in above example , we received same "AUM" value for a given portfolio and time. (regardless of what security value is).  
    And as AUM is the snapshot values, we can not sum across time as well, so if user is looking across time we need to pick Last values.
    Now when user wants to view this data from cube, two different ways s/he wants to look at it.
    option one: AUM at port+sec+time level. that is same as shown above in example.
    option two: AUM at portfolio level only,  (notice that this is across time so results are picking values for time=JAN-2)
    PORTFOLIO AUM
    A 300
    B 400
    GRAND TOTAL 700
    I have applied the "LastChild" aggregation property to measure to achieve "Do no Sum across Time "behavior. but with this I also get "SUM Across Except time" and hence my AUM values get summed across Portfolio and security as
    well. I have also enable Time Intelligence to enable MTD, YTD calculations.
    I tried to add SCOPE statement for Security before and after the "time calculations" yet I am not able to achieve expected behavior.
    here is the calculated member definition, and scope statement i have tried.
    CREATE MEMBER
    CURRENTCUBE.[MEASURES].[AUMNetBaseCurrency] AS
    [Measures].[AUMNetBaseCurrency_Raw_Max],
    FORMAT_STRING = "#,##0.00 ;( #,##0.00 )",
    VISIBLE = 1 , DISPLAY_FOLDER = 'Position';
    After this I have MTD and YTD time calculation for few measures including AUM.
    I tried placing the following SCOPE for AUM before and after the Time calculations but it no difference in result, in fact it seems like it has no affect of scope at all due to the "LastChild" aggregate property applied on measure.
    SCOPE([MEASURES].[AUMNetBaseCurrency]);
    SCOPE([Security].[Symbol].[All]);
    THIS = MAX([Measures].[AUMNetBaseCurrency_Raw_Max]);
    END SCOPE;
    END SCOPE;
    so options I am thinking of but do not have clear idea how to implement those are:
    0) why my Security Scope Statement are not showing any effect, and can we do something about it?
    1) Can be change "SUM" behavior to "MAX" / "MIN" across all Dimension except time.
    2) Is there a way to implement "LastChild" across all dimension instead only across Time.
    3) Should I need to make any changes at Fact table level to achieve this ? I refer one Q&A in this forum that suggested to create such measure in different measure group but it doesn't have any clarification.
    Any help would be appreciated.
    Thanks
    Anup Shah

    hi,
    you will have to enable cache in your nqsconfig.ini file under the section
    # Query Result Cache Section
    [ CACHE ]
    ENABLE     = YES;
    cache seeding is also a mechanism through which the data would be updated in the cache.

  • Obiee report across non additive fact tables

    I have two fact tables (f1,f2) joined two conformed dimensions d1,d2
    d1,d2 have simple hierarchy total and detail levels
    f1 --->d1
    f1---->d2
    f2---->d1
    f2---->d2
    facts tabel layout
    f1 -- c1&c2 are(additive measures)c3&c4 are(non additive measures)
    f2----col1&col2 are (additive measures)col3&col4(non additive measures)
    I have tried to construct a report with c1,c2,col1,col2 and it works fine
    when i try to do c1,c2,c3,c4,col1,col4 second fact table cols are null.
    Can someone please guide how to resolve this issue.

    there is a rule saying When you are combining multiple fact tables(stars) in a single report, the measures should be aggregated. This is like best practice.
    So in your scenario, you have to create 2 logical dimensions from the fact tables.
    Create logical dimensions F1D with source physical F1 and add only non aggregated measure(c3,c4), Create a hierarchy with total and detail level.
    Create logical dimensions F2D with source physical F2 and add only non aggregated measure(col3,col4), Create a hierarchy with total and detail level.
    then for fact table f1 , set level F1d - Detail, F2d - total.
    then for fact table f2 , set level F1d - total, F2d - detail.
    Update your presentation layer. Make sure these non aggregated columns coming from F1d,F2d instead of logical fact tables.
    check for consistency.,Now save,reload/restart server. Check your reports, thats it.
    thanks
    Madan Thota

  • Additive/semi-additive measure HELP

    I have a cube with dimensions TIME, GEOGRAPHY AND SALES_AGENT, built on a fact table that has
    TIME_LEAVES,
    GEOGRAPHY_LEAVES,
    AGENT_LEAVES as FK's
    and measures
    SOLD_QUANTITY quantity of t-shirts sold
    UNIT_PRICE the agent's price for one t-shirt
    While SOLD_QUANTITY is fully additive, being SUM aggregated in the cube for all three dimensions, the UNIT_PRICE in totally non additive, so I let aggregation method to none for all dimensions.
    Afterwards I made a calculation in JDev BIBeans multiplying UNIT_PRICE * SOLD_QUANTITY to get an income quantum, thinking it'll do something like (UNIT_PRICE1 * SOLD_QUANTITIY1) + (UNIT_PRICE2 * SOLD_QUANTITIY2) + ...
    But the results go sky high, showing that it's not calculating the way I wanted it.
    Do you have any idea? Is it possible to put a non additive measure with a fully additive one in the same cube? If so, how should I set the aggregation methods.

    It's a relational cube.
    Here is an example of a couple of rows in the fact table:
    TIME GEOGRAPHY AGENT SOLD_QUANTITY UNIT_PRICE
    ========================================================
    JAN04 LONDON AGENT1 240 20
    JAN04 YORK AGENT1 123 20
    JAN04 LONDON AGENT2 56 25
    While sold quantity is fully SUM aggregable by all dimensions, the unit price is not (the cube shows NONE for all aggregations in OEM). Even so, the UNIT_PRICE add's itself on all three dimensions.
    So instead of giving me a total income situation per agent of:
    AGENT1 (240*20)+(123*20)
    AGENT2 (56*25)
    it returns something like
    AGENT1 (240+123)*(20+20)
    AGENT2 56*25

  • Non additive aggregation -  custom defined aggregation possible in BW?

    I have the following problem:
    there is a key figure that is non-additive relative to one characteristic, e.g we need the third minimum as an aggregation for a time characteristic (there a 250 values for that characteristic).
    Is there a way to create user defined (exception) aggregation (like Var or mean value) by ABAP Coding?
    Message was edited by: Michael Walesch

    Does your database support analytic functions? Last and first are analytics functions. If your database does not support them, BI has to prepare selects with subqueries and this could slow down the response time
    Begoña

  • Is it possibe to have non numeric measures in cube??

    Hi is it possible to have non numeric measures in a cube?? As i get an error during deployment of mapping of this cube if i have non numeric measures in a cube ....

    Normally a measure should perform an aritmetic operation, like a sum( price paid ), or average( processing duration ). With a non-numeric measure you could do count, count distinct and that's about it. Non-numeric measure makes little sense, in my opinion a non-numeric property of a measure is a dimension.

  • Semi-additive measure using specified time dimension

    Hi,
    I am trying to make a semi-additive measure which will represent an Order Intake calculation.  Please see the data below:
    I plan on taking a copy of my Open Orders (Order Book) on the 1st of each month.  This gives me the ability to show that for example order A was entered in january, but at some point during the month it was increased by a value of 5.  So if I use
    Order_No and Value i see the following - which is good:
    ORDER NO
    Value
    A
    15
    B
    20
    C
    25
    D
    10
    Using snapshot_date as below, is good:
    Date
    Value
    2014-01-01
    30
    2014-02-01
    50
    However, using Brand i see the following:
    Brand
    Value
    X
    15
    Y
    35
    What I don't understand is why the value in X is wrong, but Y is right?  I am expecting the sum of the different orders within the brand, but the latest value by snapshot date.
    The "Value" is using the AggregateFunction "LastNonEmpty".
    I hope this example makes sense and look forward to some responses!
    Thanks

    Hi Dom,
    Does
    Yogisha's suggestion work on your scenario? If the issue persists, please post the detail information about your issue, so that we can make further analysis.
    Regards,
    Charlie Liao
    TechNet Community Support

  • Semi additive measures

    Hi, I need to create a semi additive measure in the bussiness model using the LAST function over the time dimension...
    In the aggregation tab I set Dimension Time with the LAST(), and Other with sum... when I use the measure in answer I get nothing...
    I try putting the LAST aggregate function over the SUM aggregate function in the aggregate tab....
    How should I use this feature?
    Thansk

    Hi,
    I'm not quite sure, but don't you need to create a level beased measure on time level and the last function over your measure?
    So duplicate the measure you need, put aggregation level on last and set the dimension level to the corresponding time level.
    Otherwise try to explain once what you want to achieve...
    Hope it can help you.
    Kr,
    A

  • Non-Additive member

    What is Non-Additive and What is the characteristics of Non-Additive member. Why it should be used?

    A non-additive member refers to a member in the cube that you would exclude from any type of roll-up. Statistical accounts or rates are good examples of non-additive members. These members when rolled up would lose their meaning and result in a nonsensical number.
    The opposite are additive members which roll up equally across all dimensions. Sales is a good example of an additive member. Sales rolls up across all dimensions like time, Products, Customers, etc to result in a meaningful number.
    The third distinction is a semi-additive member. A semi-additive member rolls up across some dimensions, but not others. A bank account balance is a good example of a semi-additive member. A bank account balance might roll up well across customers and branches, but the sum of a bank account balance over time would not be of any use.

  • Non additive dissolve video transition doesnt connect 2 photos gradually in my Premiere pro 5.5

    non additive dissolve video transition doesnt connect 2 photos gradually in my Premiere pro 5.5, is there any settings for it?

    I too am experiencing this issue.  AVCHD footage, GPU Acceleration, trying to apply a cross dissolve, and instead it randomly seems to see it as a simple cut.  The Cross Dissolve is simply ignored... Adjusting the footage length, removing the CDissolve, re-rendering, etc. have no effect.  For whatever reason, in that specific location on the timeline, a cross dissolve with GPU acceleration is impossible.  Yet, in other sections of the timeline, it is just fine.
    (The Fast Blur trick mentioned above worked (Thank you!) however, when I changed my playback resolution on the screen display, that broke the fix.  Deleting the fast blur, and applying it to the clip on the other side of the cross dissolve, re-enabled the work around)
    I also see an issue when a clip changes in the timeline, (cut from one piece of footage, to another) the video will begin to studder, dropping frames.  Framerate seems to drop to about 2fps.  To get smooth playback back, I have to pause and resume the playback.  Even if this is done very very rapidly, it still fixes the playback issue.  it's just really annoying to have to constantly stop and resume playback everytime a video clip changes in the timeline.
    I have a dedicated hard drive for video, and a dedicated mirrored array for the OS.  the video drive is a 7200rpm SATAII drive, and I'm using AVCHD footage.  I really don't think it's a disk speed issue... particularly as pausing and resuming (even if you do it as fast as you can possibly hit the keys) fixes it.  I'd rather not spend the $ to set up a RAID 10 for video, if I can avoid it and particularly if it's not needed.
    -Jason

  • Is there any settings for non additive dissolve video transition? mine doesnt work!

    is there any settings for non additive dissolve video transition? mine doesnt work!

    Hi Edittor,
    What kind of settings were you looking for?
    Thanks,
    Kevin

  • Semi additive Measures across non time dimensions

    Hello,
    I need to make my measure semi additive across a non time dimension (Since I am getting totals at each level and I cant roll up the children to the parent, instead create a dummy member at the lower level for total and use FirstChild). Is it advisable to change the dimension type to time to achieve this functionality?
    Thanks
    Arun

    I had followed exactly the same approach specified in the paper without using parent child dimensions. I had created "blank" members instead of the same name as the parent member. Now, the issue is, I have to make the measure's aggregation as "FirstChild" so that it takes the "blank" member's value for the parent.
    Another issue is, I have multiple dimensions in the cube and I have aggregated data across dimensions in my source. For Example,
    Col1                                                          Col2
    Dimension A Level1 Member1           Dimension B Level 1 Member 1           1000
    Dimension A Level1 Member1           Dimension B Level 2 Member 1           500
    Dimension A Level1 Member1           Dimension B Level 2 Member 2           500
    Dimension A Level2 Member1           Dimension B Level 1 Member 1           2000
    Dimension A Level2 Member1           Dimension B Level 2 Member 1           1000
    Dimension A Level2 Member1           Dimension B Level 2 Member 2           1000
    Thanks
    Arun

Maybe you are looking for