@RANK Function - Help!
I am using the following function in my outline which is 2 pass calc: It ranks the sales of associates.@RANK(SKIPMISSING,Sales, @RANGE(Sales,@LEVMBRS(EMPLOYEES,0)));It works fine on upperlevel time dimension members that are dynamic calc, but it fails miserably on the "0" level members of Time (for example it will give a ranking to several members of "3" which have very different sales figures). It also fails when upperlevel members of Time are stored (as opposed to dynamic calc)Does anyone know what the porblem is and how I get @RANK to work with zero level Time members?Thanks
Seth/AndyOut of curiosity, is "EMPLOYEES" a sparse or dense dimension, what's the size of it?I worked with @RANK and @RANGE in a way similar to your setting, but I had to make my equivalent to your "EMPLOYEES" a dense dimension (about 4000 leaf level members), that make the block very sparse.The member where the formula applied can be stored or dynamic calc in my case.I got the recursion limit if I set the "EMPLOYEES" dimension as sparse.ThanksSteven
Similar Messages
-
Hello All,
Below is the sql i am trying to execute and the Dense Rank function is giving same result for all of the rows, could you please help me where i am doing wrong
SELECT
AMT,
DENSE_RANK() OVER (PARTITION BY AMT ORDER BY AMT DESC) AS DENSE_RANK
FROM
SELECT DISTINCT
SUM(NVL(TRUNC(NET_AMT) * NVL(GLOBAL1_EXCHANGE_RATE,1),0))
OVER (PARTITION BY CUSTOMER_BILL_TO_LOC_WID ORDER BY CUSTOMER_BILL_TO_LOC_WID)
AS AMT
FROM
W_SALES_BOOKING_LINE_F
WHERE
SALES_ORDER_NUM IN ('10612426','10612450','10612477','32649203')
AND
X_MONTH_WID=TO_CHAR(SYSDATE-1,'YYYYMMDD')
)--ORDER BY AMT DESC Result Set:
AMT DENSE_RANK
0 1
2,855 1
6,706 1
14,265 1you have "broken" up your resultset (from the inline view) by AMT (PARTITION BY AMT)
and per part, you sort this (one row in each partition, not a whole lot of sorting) ( ORDER BY AMT DESC)
then you assign a ranking based on the sorting action... which yields 1 (DENSE_RANK)
Are you looking for this
SELECT
AMT,
DENSE_RANK() OVER (ORDER BY AMT DESC) AS DENSE_RANK
FROM
SELECT DISTINCT
SUM(NVL(TRUNC(NET_AMT) * NVL(GLOBAL1_EXCHANGE_RATE,1),0))
OVER (PARTITION BY CUSTOMER_BILL_TO_LOC_WID ORDER BY CUSTOMER_BILL_TO_LOC_WID)
AS AMT
FROM
W_SALES_BOOKING_LINE_F
WHERE
SALES_ORDER_NUM IN ('10612426','10612450','10612477','32649203')
AND
X_MONTH_WID=TO_CHAR(SYSDATE-1,'YYYYMMDD')
)--ORDER BY AMT DESC -
/*below is the table format and data I have */
Create
table Result(name
varchar(50),Subject
varchar(20),Marks
int)
insert
into Result
values('Adam','Maths',70)
insert
into Result
values
('Adam','Science',80)
insert
into Result
values
('Adam','Social',60)
insert
into Result
values('Tom','Maths',60)
insert
into Result
values
('Tom','Science',50)
insert
into Result
values
('Tom','Social',70)
insert
into Result
values('Sam','Maths',90)
insert
into Result
values
('Sam','Science',90)
insert
into Result
values
('Sam','Social',80)
Since Same has the highest marks
, I want
TO display Sam
FIRST
AND
THEN list
ALL his marks.
THEN
Adam has SECOND highest marks so I want
TO display Adam
AND
THEN
ALL his marks
along
WITH this I also want
TO
RANK each ROW
below is my result set :
Name subject marks rank
Sam Maths 90 1
Sam Science 90 1
Sam Social 80 3
Adam Maths 80 4
Adam Science 70 5
Adam Social 60 6
Tom Social 70 7
Tom Maths 60 8
Tom Science 50 9I'm using ranking function to get the desired result set . But its not working .
here is what I'm using :
select
Name,Subject,Marks,
RANK
()over(partitionbynameorderbyMarksdesc)Rank
From
Result
order
byname,subject -
How to use "Rank" function in Oracle?
I need to display Top 15 records by using rank function.
Here is my query...I need to pull top 15 FAQ's using the below query.. How can I use RANK function to display the Top 15 FAQ"s in the list.
Select distinct SUb1.FAQ,Sub1.FAQ_Hits,GU.display_Name_FMLS as displayname,ev.ParentLinkrecordid,ev.userid from User GU
Join Event ev
ON LOWER (ev.userid) IN (LOWER (GU.lanid), LOWER (Gu.racfid))
Join (Select distinct sm.stem as FAQ,Sum(ev.Eventresults) as FAQ_Hits,ev.ParentLinkrecordid as Topic_ID from Event ev
Join SubjectMatter sm
ON (TO_CHAR (sm.smrecordid) = ev.eventdetail1) AND ev.eventdetail1 IS NOT NULL AND sm.smtype = 1
Where (Upper(ev.eventsubtype) in (Upper('FAQ'),Upper('OPENFAQ')))
AND TO_DATE (eventdatetime, 'yyyy-mm-dd hh24:mi:ss') >= TO_DATE ('20100601', 'yyyymmdd')
and TO_DATE (eventdatetime, 'yyyy-mm-dd hh24:mi:ss') <= TO_DATE ('20100831', 'yyyymmdd')
Group by sm.stem,ev.Parentlinkrecordid
order by FAQ )sub1
ON Sub1.Topic_ID = ev.ParentLinkrecordid)A few bits that I noticed in the query ...
in (Upper('FAQ'),Upper('OPENFAQ'))1) Do you really a upper for a string which is already in upper case.
Select distinct sm.stem as FAQ,Sum(ev.Eventresults) as FAQ_Hits,ev.ParentLinkrecordid as Topic_ID2) Do you need a distinct when you are using a GROUP function viz. SUM ?
You rank query is as follows, I am not very good at the ANSI style JOIN so changed it slightly ... :-)
Also notice the usage rank function in the "sub1" query.
select distinct sub1.faq,
sub1.faq_hits,
gu.display_name_fmls as displayname,
ev.parentlinkrecordid,
ev.userid
from user gu, event ev,
(select rank() over (order by sum(ev.eventresults) desc) rnk,
sum(ev.eventresults) as faq_hits,
sm.stem as faq,
ev.parentlinkrecordid as topic_id
from event ev, subjectmatter sm
where (to_char(sm.smrecordid) = ev.eventdetail1)
and ev.eventdetail1 is not null
and sm.smtype = 1
AND upper(ev.eventsubtype) in ('FAQ', 'OPENFAQ')
and to_date(eventdatetime, 'yyyy-mm-dd hh24:mi:ss') >= to_date('20100601', 'yyyymmdd')
and to_date(eventdatetime, 'yyyy-mm-dd hh24:mi:ss') <= to_date('20100831', 'yyyymmdd')
group by sm.stem, ev.parentlinkrecordid
order by faq) sub1
where lower(ev.userid) in (lower(gu.lanid), lower(gu.racfid))
and sub1.topic_id = ev.parentlinkrecordid)
and sub1.rnk <= 15;Like mentioned above, some sample data would have helped. -
Rank function without filter in the report
Hi,
I have a problem with Rank() function. The problem is the next one.
I have a table with this rows:
User | DATE | Cost
user1 | 12/02/2011 | 10,4
user1 | 13/02/2011 | 11,1
user1 | 13/02/2011 | 10,1
user1 | 13/02/2011 | 8,1
user2 | 12/02/2011 | 1,4
user2 | 13/02/2011 | 12,1
user2 | 13/02/2011 | 22,1
user2 | 13/02/2011 | 8,1
In the rpd I have a agregate row as SUM(COST), and I need extract te ranking of this SUM(COST) per user, The sum of user1 is 39,7 and the sum of the user 2 is 43,7. If I show in the report all users, the ranking is correct Rank=1 per user2 and Rank=2 per user1, but the problem is that I only want show the user1, when I add a filter to the report user='user1' the ranking value changes from 2 to 1. I need that the ranking value doesn´t change when I introduce a filter.
Any idea about how to solve this problem?
ThanksHi Antonio,
On the Rank column in the answers edit the formula as given below.
Case when username = 'user2' then Rank(sum(cost)) else 0 end
Then apply a filter on the Rank column as Rank > 0.
I hope this one helps you.
Regards
AP -
how to use the RANK function in oracle data integrator??
Hi,
a little google could help you..
https://forums.oracle.com/thread/2158588
Let us know -
Rank Function taking a long time to execute in SAP HANA
Hi All,
I have a couple of reports with rank function which is timing out/ or taking a really long time to execute, Is there any way to get the result in less time when rank functions are involved?
the following is a sample of how the Query looks,
SQL 1:
select a.column1,
b.column1,
rank () over(partition by a.column1 order by sum(b.column2) asc)
from "_SYS_BIC"."Analyticview1" b
join "Table1" a
on (a.column2 = b.column3)
group by a.column1,
b.column1;
SQL 2:
select a.column1,
b.column1,
rank () over( order by min(b.column1) asc) WJXBFS1
from "_SYS_BIC"."Analytic view2" b
cross join "Table 2" a
where (a.column2 like '%a%'
and b.column1 between 100 and 200)
group by a.column1,
b.column1
when I visualize the execution plan,the rank function is the one taking up a longer time frame. so I executed the same SQL without the rank() or partition or order by(only with Sum() in SQL1 and Min() in SQL 2) even that took a around an hour to get the result.
1.Does anyone have an any idea to make these queries to execute faster?
2. Does the latency have anything to do with the rank function or could it be size of the result set?
3. is there any workaround to implement these rank function/partition inside the Analytic view itself? if yes, will this make it give the result faster?
Thank you for your help!!
-GayathriKrishna,
I tried both of them, Graphical and CE function,
It is also taking a long time to execute
Graphical view giving me the following error after 2 hr and 36 minutes
Could not execute 'SELECT ORDER_ID,ITEM_ID,RANK from "_SYS_BIC"."EMMAPERF/ORDER_FACT_HANA_CV" group by ...' in 2:36:23.411 hours .
SAP DBTech JDBC: [2048]: column store error: search table error: [2620] executor: plan operation failed
CE function - I aborted after 40 mins
Do you know the syntax to declare local variable to use in CE function? -
Sql tuning using rank function
Hi,
Can someone help me in writing the below qry using rank() function?
DELETE FROM stc_calllog_ext a
WHERE a.stc_save_status = 'CT'
AND ROWID IN (SELECT a.ROWID
FROM stc_calllog_ext a, calllog_ext b
WHERE a.prod_line_code= b.prod_line_code
AND a.brand_code = b.brand_code
AND a.model_number = b.model_number
AND a.stc_save_status != b.stc_save_status
AND trunc(a.stc_start_time) = trunc(b.stc_start_time)
AND a.stc_start_time BETWEEN TRUNC(SYSDATE-8) AND TRUNC(SYSDATE)
AND a.call_taker_userid = b.call_taker_userid
AND a.cons_telephone_no =b.cons_telephone_no
)With the information you have provided, I've come up with the following.
SELECT A.ACCOUNT_NO, A.PAYMENT_TYPE, A.INSTALLMENT_TYPE, A.DATE_CHANGE
FROM
(SELECT account_no, payment_type, installment_type, date_change,
LEAD( (payment_type), 1)
over (partition by account_no order by account_no, DATE_CHANGE) LEAD_PAY,
LEAD( (installment_type), 1)
over (partition by account_no order by account_no, DATE_CHANGE) LEAD_INST
from T_ACCNTS ) A
WHERE A.PAYMENT_TYPE <> NVL(A.LEAD_PAY,99)
OR A.INSTALLMENT_TYPE <> NVL(A.LEAD_INST,99)
ORDER BY 1, 4; -
Error using Rank function in Answers
Hi All,
Am trying to generate a report in Answers which lists Top Accounts with Revenue.
I Ranked the Revenue field and it is returning me correct values. ( Rank(account.revenue) )
But, when I try to filter on this field and restrict the rows which shows only top 10 Accounts, it is returning the following error:
State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. [nQSError: 17001] Oracle Error code: 1792, message: ORA-01792: maximum number of columns in a table or view is 1000 at OCI call OCIStmtExecute. [nQSError: 17010] SQL statement preparation failed. (HY000)
Can any one help me on this.
Thanks in Advance,
Imtiaz.Hi Joe,
This is the Physical query generated when I use Rank function and the report is fine.
select distinct D1.c1 as c1,
D1.c2 as c2,
D1.c3 as c3,
D1.c4 as c4,
D1.c5 as c5,
D1.c6 as c6,
D1.c7 as c7,
D1.c8 as c8,
D1.c9 as c9,
D1.c10 as c10,
D1.c11 as c11,
D1.c12 as c12,
D1.c13 as c13,
D1.c14 as c14,
D1.c15 as c15
from
(select D1.c1 as c1,
D1.c2 as c2,
D1.c3 as c3,
D1.c4 as c4,
D1.c5 as c5,
D1.c6 as c6,
D1.c7 as c7,
D1.c8 as c8,
D1.c9 as c9,
D1.c10 as c10,
D1.c11 as c11,
D1.c12 as c12,
D1.c13 as c13,
D1.c14 as c14,
D1.c15 as c15
from
(select Case when D1.c1 is not null then Rank() OVER ( ORDER BY D1.c1 DESC NULLS LAST ) end as c1,
D1.c2 as c2,
D1.c3 as c3,
D1.c1 as c4,
D1.c4 as c5,
D1.c5 as c6,
D1.c6 as c7,
D1.c7 as c8,
D1.c8 as c9,
D1.c9 as c10,
D1.c10 as c11,
D1.c11 as c12,
D1.c12 as c13,
D1.c13 as c14,
D1.c14 as c15,
ROW_NUMBER() OVER (PARTITION BY D1.c1, D1.c2, D1.c3, D1.c4, D1.c5, D1.c6, D1.c7, D1.c8, D1.c9, D1.c10, D1.c11, D1.c12, D1.c13, D1.c14 ORDER BY D1.c1 ASC, D1.c2 ASC, D1.c3 ASC, D1.c4 ASC, D1.c5 ASC, D1.c6 ASC, D1.c7 ASC, D1.c8 ASC, D1.c9 ASC, D1.c10 ASC, D1.c11 ASC, D1.c12 ASC, D1.c13 ASC, D1.c14 ASC) as c16
from
(select distinct T690.SUM_REVN_AMT as c1,
T690.NAME as c2,
T2216.NAME as c3,
T690.X_PETROFAC_REVN as c4,
T690.SUM_WIN_PROB as c5,
T690.X_PERCENT_GET as c6,
T690.SUM_WIN_PROB * T690.X_PERCENT_GET / nullif( 100, 0) as c7,
T690.X_EC_PRIORITY as c8,
T19028.LOGIN as c9,
T690.X_COUNTRY as c10,
T690.X_REGION as c11,
T18311.NAME as c12,
T18641.NAME as c13,
T18238.NAME as c14
from
SIEBEL.S_BU T18238 left outer join (
SIEBEL.S_USER T19028 left outer join (
SIEBEL.S_OPTY T690 left outer join SIEBEL.S_STG T2216 On T690.CURR_STG_ID = T2216.ROW_ID) left outer join SIEBEL.S_ORG_EXT T1189 On T690.PR_DEPT_OU_ID = T1189.ROW_ID) left outer join SIEBEL.S_ORG_EXT T18311 /* Competitor */ On T690.PR_CMPT_OU_ID = T18311.ROW_ID) left outer join SIEBEL.S_ORG_EXT T18641 /* Partner */ On T690.PR_PRTNR_ID = T18641.ROW_ID) left outer join SIEBEL.S_POSTN T19114 On T690.PR_POSTN_ID = T19114.PAR_ROW_ID) left outer join SIEBEL.S_OPTY_BU T18280 On T690.ROW_ID = T18280.OPTY_ID) left outer join SIEBEL.S_OPTY_X T19415 On T690.ROW_ID = T19415.PAR_ROW_ID) On T19028.PAR_ROW_ID = T19114.PR_EMP_ID) On T18238.ROW_ID = T18280.BU_ID
) D1
) D1
where ( D1.c16 = 1 )
) D1
order by c1 desc
But When I apply Filter on this Rank column then it gives me the error. THis is the Physical query for that
select distinct Case when D1.c1 is not null then Rank() OVER ( ORDER BY D1.c1 DESC NULLS LAST ) end as c1,
D1.c2 as c2,
D1.c3 as c3,
D1.c1 as c4,
D1.c4 as c5,
D1.c5 as c6,
D1.c6 as c7,
D1.c7 as c8,
D1.c8 as c9,
D1.c9 as c10,
D1.c10 as c11,
D1.c11 as c12,
D1.c12 as c13,
D1.c13 as c14,
D1.c14 as c15
from
(select D1.c1 as c1,
D1.c2 as c2,
D1.c3 as c3,
D1.c4 as c4,
D1.c5 as c5,
D1.c6 as c6,
D1.c7 as c7,
D1.c8 as c8,
D1.c9 as c9,
D1.c10 as c10,
D1.c11 as c11,
D1.c12 as c12,
D1.c13 as c13,
D1.c14 as c14
from
(select T690.SUM_REVN_AMT as c1,
T690.NAME as c2,
T2216.NAME as c3,
T690.X_PETROFAC_REVN as c4,
T690.SUM_WIN_PROB as c5,
T690.X_PERCENT_GET as c6,
T690.SUM_WIN_PROB * T690.X_PERCENT_GET / nullif( 100, 0) as c7,
T690.X_EC_PRIORITY as c8,
T19028.LOGIN as c9,
T690.X_COUNTRY as c10,
T690.X_REGION as c11,
T18311.NAME as c12,
T18641.NAME as c13,
T18238.NAME as c14,
Case when T690.SUM_REVN_AMT is not null then Rank() OVER ( ORDER BY T690.SUM_REVN_AMT DESC NULLS LAST ) end as c15
from
SIEBEL.S_BU T18238 left outer join (
SIEBEL.S_USER T19028 left outer join (
SIEBEL.S_OPTY T690 left outer join SIEBEL.S_STG T2216 On T690.CURR_STG_ID = T2216.ROW_ID) left outer join SIEBEL.S_ORG_EXT T1189 On T690.PR_DEPT_OU_ID = T1189.ROW_ID) left outer join SIEBEL.S_ORG_EXT T18311 /* Competitor */ On T690.PR_CMPT_OU_ID = T18311.ROW_ID) left outer join SIEBEL.S_ORG_EXT T18641 /* Partner */ On T690.PR_PRTNR_ID = T18641.ROW_ID) left outer join SIEBEL.S_POSTN T19114 On T690.PR_POSTN_ID = T19114.PAR_ROW_ID) left outer join SIEBEL.S_OPTY_BU T18280 On T690.ROW_ID = T18280.OPTY_ID) left outer join SIEBEL.S_OPTY_X T19415 On T690.ROW_ID = T19415.PAR_ROW_ID) On T19028.PAR_ROW_ID = T19114.PR_EMP_ID) On T18238.ROW_ID = T18280.BU_ID
) D1
where ( D1.c15 <= 10 )
) D1
order by c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, c13, c14, c15
Thanks,
Imtiaz -
Hi Friends,
Need your help. Please!!!
I have used the RANK function to know the different Start, end date period for a Enrollment.NO.
What I want next is to show only the Enroll No, start, end date for a Enrollment No. with the earliest start date, end date. i.e Max(Rank) for that enrollment No.
for RANK column I have used the function RANK("Start Date" by "EnRoll No")
EnRoll No. Start Date, End Date, Rank
BAD-002 01-Oct-12 31-Dec-12 1
01-Jul-12 30-Sep-12 2
01-Apr-12 30-Jun-12 3
RIS-401 01-Dec-06 28-Feb-07 1
01-Sep-06 30-Nov-06 2
01-Jun-06 31-Aug-06 3
01-Mar-06 31-May-06 4
01-Dec-05 28-Feb-06 5
01-Sep-05 30-Nov-05 6
01-Jun-05 31-Aug-05 7
01-Mar-05 31-May-05 8
01-Dec-04 28-Feb-05 9
RCB-235 01-Dec-08 28-Feb-09 1
01-Sep-08 30-Nov-08 2
01-Jun-08 31-Aug-08 3
01-Mar-08 31-May-08 4
01-Dec-07 29-Feb-08 5
01-Sep-07 30-Nov-07 6
01-Jun-07 31-Aug-07 7
01-Mar-07 31-May-07 8
01-Dec-06 28-Feb-07 9
01-Sep-06 30-Nov-06 10
01-Jun-06 31-Aug-06 11
01-Mar-06 31-May-06 12
01-Dec-05 28-Feb-06 13
01-Sep-05 30-Nov-05 14
My desired output is:
EnRoll No. Start Date End Date Rank
BAD-002 01-Apr-12 30-Jun-12 3
RIS-401 01-Dec-04 28-Feb-05 9
RCB-235 01-Sep-05 30-Nov-05 14
Please help me. Its urgent. I am struck at this point.
Many Thanks in advance.
AachalaHi Aachala,
Add the following to your filter and you should be all set...
MAX(RANK("Start Date" by "EnRoll No") by "EnRoll No") = RANK("Start Date" by "EnRoll No") by "EnRoll No")
JB -
Rank function breaks drill down 11g
I have a simple drill down report standard hierarchy and am having a weird issue with the rank function.
This report works on 10g but the upgraded 11g version does not.
When I drill down past the 2nd level it adds an is null filter to the revenue column. This is also the column we are using to base our rank function.
If I move the rank column to the first or last position in the table the drills work perfectly. If I move it to the second column it breaks on the first drill instead of the 2nd.
It works perfectly if drilling on the headings instead of the values. That seems to point to some sort of null coming through when being passed. I've tried using an ifnull and a case statement and neither method works, it just applies the is null filter to the entire column formula.
The client doesn't want to change the position of the rank column so that work around will not do. Any ideas?A similar thread was recently talked about here:
In OBIEE charts, how do you make drill downs work on custom formulas?
With a calculated column, you need to make sure the source query and destination query have the EXACT same formula and the same name for the field. If it is not 100% identical, it may not work correctly. (I typically use the NAVIGATE function to get to the second query rather than the Drill function.)
Now in some cases, if you try to create a second drill down query with more details in it, the original formula doesn't work the way you want it to. The calculated formulas have to make sense in both source query and destination query in order to work properly. If you have a ranking of the Top 5 Products in the source query, the destination query also has to have the same ranking of Top 5 products in order to work. If you add more fields into the destination query (e.g., adding on product attributes, or # of records associated with that product name etc.), then sometimes the ranking / aggregation in the destination doesn't add up the same way. This causes the system to think that the formulas are different and prevents the drill down.
I managed to get around this by having a 3rd query in between the original summary view and the detailed data view. So the sequence would be (for example):
- Dashboard based summary query (including the calculated ranked product names formula)
- drill down into virtually identical query (add on one slight bit of difference here, for example adding on a second Product Name field ... not a calculated version, but the actual name). Create a drill down this time by clicking on the regular Product Name field (don't drill down on the custom formula)
- final detailed drill-down query
You can format this intermediary drill down query to explain to users that they need to click a second time.
It's not ideal, but it should work. Hope this helps.
Ted -
Hi Expert,
Could you please let me know how can I use rank function in MDX to achieve the result in below format. Highest value should be ranked as 1
Actual/Expected Dataset appears as:
Thanks ChandanHi C,
You can use the mdx RANK() function. For example, this query has ranking of cities by sales amount. You could create two sets, and two calcs with RANK() functions for your challenge.
WITH
SET OrderedCities AS Order
([Geography].[City].[City].members
, [Measures].[Reseller Sales Amount], BDESC
MEMBER [Measures].[City Rank] AS Rank
([Geography].[City].CurrentMember, OrderedCities)
SELECT {[Measures].[City Rank],[Measures].[Reseller Sales Amount],[Measures].[City Rank]} ON 0
,[Geography].[City].[City].MEMBERS
ON 1
FROM [Adventure Works]
Hope that helps,
Richard -
Compile forms error because using rank function
Hi,
Oracle Form 9i don't known rank function in my SQL statement. When compile forms, it alerts err message: "Encountered the symbol "(" when expecting one ..."
code:
select * from (
select group_id, acct_no, acct_desc, rank() over(order by acct_no desc) rank_no from customer
where group_id='002'
) where rank_no< 10000
Help me ASAP.
Many thank,
Bum.Where is INTO clause ? Plz provide the actual code you are writing.
I think this type of queries not supported in Forms 9i.....try forms 10g or above. -
I am having some trouble getting expected results when using the RANK function. My MDX is below with the result set that gets created.
The [SF OCC Rank] results are correct but the [Net Rentals Rank] is not. I am wanting to rank each of the measures to be able to identify which Site is ranked highest in [SF Occ %] and then which site is ranked highest in [Net Rentals].
My data has in total 43 sites. In my filter I am limiting it to the Sites in [Site Groups].[Site Group Name].&[12]. There are only 14 sites that should display. It looks like the [Net Rentals Rank] is ranking all 43 sites instead of
just the 14 that I am wanting.
Any help is greatly appreciated. Thanks!
WITH
MEMBER [Measures].[SF Occ Rank] as RANK(([Unit].[Site Name].CurrentMember),ORDER(([Unit].[Site Name].[Site Name].Members),[Measures].[SF Occ %], BDESC))
MEMBER [Measures].[Net Rentals Rank] as RANK(([Unit].[Site Name].CurrentMember),ORDER(([Unit].[Site Name].[Site Name].Members),[Measures].[Net Rentals], BDESC))
select {[Measures].[SF OCC %],[Measures].[SF Occ Rank],
[Measures].[Net Rentals], [Measures].[Net Rentals Rank]} on COLUMNS,
filter( [Unit].[Site Name].[Site Name].Members,[Site Groups].[Site Group Name].&[12]) on ROWS
from [CUBE]
where ( [Date].[Calendar].[Month of Year].&[201412],[Site Groups].[Site Group Name].&[12])Hi rocko,
You are correct the Net Rentals Rank will be calculated for all the Sites and will display the result for the current Sites being selected. Do some changes to the query so that you will get the ranks for only the sites you selected.
WITH
MEMBER [Measures].[SF Occ Rank] as RANK(([Unit].[Site Name].CurrentMember),ORDER(([Unit].[Site Name].[Site Name].Members),[Measures].[SF Occ %], BDESC))
MEMBER [Measures].[Net Rentals Rank] as RANK([Unit].[Site Name].CurrentMember,ORDER( Exists( [Unit].[Site Name].[Site Name].Members,[Site Groups].[Site Group Name].&[12]),[Measures].[Net Rentals], BDESC))
select {[Measures].[SF OCC %],[Measures].[SF Occ Rank],
[Measures].[Net Rentals], [Measures].[Net Rentals Rank]} on COLUMNS,
Exists( [Unit].[Site Name].[Site Name].Members,[Site Groups].[Site Group Name].&[12]) on ROWS
from [CUBE]
where ( [Date].[Calendar].[Month of Year].&[201412],[Site Groups].[Site Group Name].&[12])
Regards,
Venkata Koppula -
Reporting-Top 10 and Rank() function
Need to modify Top 10 Opportunities Pre-defined analysis report. In doing so, we loose the drop down Fiscal Qtr/Year. The only option is to create a Pivot table, and use Fiscal Qtr/Year as a selector. The issue is that I need to be able to retrieve the Top 10 for every Quarter/Year. What is happening now is that the report is pulling Top 10 Opportunities for the entire report, and when we select the Fiscal Quarter/Year, if a Top 10 Opportunities exists, it will return a record(s). If not, it returns 0. Need Top 10 for every quarter.
The Rank function is used. How do I achieve this using this functionality?
Thank you.Hi,
Following information might be helpful in resolving the issue.
General Syntax of Ranking :
Rank( measure; (dimensions); [Top|Bottom])
Here is the work flow with an example :- (use efashion universe )
1) Create a webi report selecting objects quarter, year, sales revenue and create a cross tab
2) While creating a cross tab, use the Object Year in columns and object Quarter for rows.
3)Define a variable Var1 = Rank ([Sales Revenue] ; [Quarter]; [Year]) ForEach ([Year])
4) Insert a blank column next to year in the cross tab.
5) Drag and drop the variable Var1 in the new blank column inserted next to Object Year..
You will now find that you have ranking for the years 2001, 2002, 2003 being reflected
independently.
Regards,
Sarbhjeet Kaur
Maybe you are looking for
-
IPod Nano Sync with Mac, but iPod formatted for Windows
I finally changed to the Mac platform and all my iPods and iPhones were synced with a Windows based computer. While my iPhones were not a problem, my iPod Nano (4GB 2nd generation) seemed not be recognized by my iMac. I can't seem to get my iMac to s
-
Macbook keeps forgetting mail password on restart
Why does my macbook pro lose mail password, go to default wallpaper, load calendar when I restart or turn on my computer? How can I fix this?
-
Hi, I have load balancing between 2 Apps Tier, and all the Users are connected to Node2 only, none of the users are on Node1. Apps 11i and DB 10.2 Any suggestion please.... Thanks,
-
Illustrator CC is crashing when trying to "Package" a file
Everytime I select Package from the file menu, Illustrator CC crashes. It's version 17.0.2 I've restarted the Mac several times and it still crashes. I've been using Package for a few months with no problems, then today... nothing but crashes. Any s
-
I'm trying to watch several videos with the url above. I've tried with VLC and it didn't work. I usually use Quick time and have it installed as well. It is a University Finals study video.