2011-09-08 58 views
0

我爲我們的網站設置了一個SSAS項目,但無法找到合適的值,而在普通的SQL查詢中卻很簡單。商業智能 - 找不到我要找的值

這是我的設置:我的網站上有一個用戶連接事實填充的數據庫。所以我有一個會員維度和日期維度。 Heres的關鍵績效指標我很喜歡:「用戶訪問我們網站的平均天數」。

讓我們舉個例子:

Member Day 
a   1 
a   1 
a   2 
b   2 
a   4 
a   5 
b   5 
a   6 

在這種情況下,應該KPI得到3,5-(α= 5,B = 2)。在普通的SQL中,我會在一個小組上完成一個小組的平均值(這是我記住的第一個請求,也許有更好的一個)。

但是,只要我嘗試將維度和事實組裝在一起,我就找不到正確的度量。

我在找錯誤的東西嗎?我應該放棄我的SQL思維方式嗎?你將如何獲得我需要的價值?

+0

你解釋你是如何得到這個的? '在這種情況下,KPI應該給出3,5(a = 5,b = 2)。' – MatBailie

+0

是的,用戶a在第1天(2次),2,4,5和6即將到來。 5天(和6次訪問)。用戶b在第2天和第5天到來,這使得2天(和2次訪問)。 天左右,用戶是在我的應用程序來的平均數量爲(5 + 2)/ 2。 在SQL我會做 SELECT AVG(訪問)FROM(SELECT會員,COUNT(*)FROM訪問(SELECT Member,COUNT(*)VisitPerDay FROM Connection GROUP BY Member,Day)t1 GROUP BY t1.MemberId)t2 (抱歉格式不正確,我不知道如何處理它) – Bastien

+0

您可以將'圍繞你的代碼來獲得代碼格式。 – MatBailie

回答

0

我明白了!這只是一個國際化問題。對我來說3,5意味着數字35,我會寫爲3.5 :)

SELECT 
    AVG(CountOfDay) As AverageDays 
FROM 
    (SELECT Member, COUNT(DISTINCT Day) CountOfDay FROM YourTable GROUP BY Member) AS UniqueDaysByMember 

真的不需要「會員」在子查詢的SELECT。它只是讓它對我來說「意味着什麼」,所以如果我以後回來查看代碼,我不會感到困惑。

+0

好的,現在更清楚了。這是臭名昭着的COUNT DISTINCT。但是這並不能回答我如何在SSAS中獲得這個結果的問題。現在,如何設置COUNT DISTINCT度量值,但我怎樣才能對其執行AVG? – Bastien