2016-08-04 63 views
0

即時通訊分析中的新功能。我正在使用分析來獲取用戶的反饋。大約有50個事件即時發送到天藍色,我試圖從兩個輸入得到一個綜合結果,但無法獲得工作輸出。我的問題是在sql查詢輸出。加入複雜輸出的輸入

現在我發送輸入。

Recommandations:

{"appId":"1","sequentialId":"28","ItemId":"1589018","similaristyValue":"0.104257207028537","orderId":"0"}

ShownLog:

{"appId":"1","sequentialId":"28","ItemId":"1589018"}

我需要sequentialId和項目Id加入他們的行列,並計算兩個有序順序之間的區別。

例如:我發送10個推薦事件,之後(如2秒後)發送3個ShownLog事件。所以我需要做的是我必須得到「推薦」中的「orderid」排序的前3項(因爲我發送3個展示日誌事件)事件的類似性值。我還需要從「ShownLog」中獲得相似度值的總和。最後我需要這樣的輸入(對每個順序編號):

sequentialID差異 168 1.21

我VE迄今所做的。我保存所有輸入我的天藍色的SQL和我設法寫我想要的SQL。您可能會發現它的mssql查詢:

declare @sumofSimValue float; 
declare @totalItemCount int; 
declare @seqId float; 

select 
    @sumofSimValue = sum(b.[similarityValue]), 
    @totalItemCount = count(*), 
    @seqId = a.sequentialId 
     from EventHubShownLog a inner join EventHubResult b on a.sequentialId=b.sequentialId and a.ItemId=b.ItemId group by a.sequentialId 

     --select @sumofSimValue,@totalItemCount,@seqId 


    SELECT @seqId, SUM([similarityValue])[email protected] 
FROM (
    SELECT TOP(@totalItemCount) [similarityValue] 
    FROM [EventHubResult] where [email protected] order by orderId 
) AS T 

但它在分析中給了很多錯誤。它也缺乏天藍色分析的邏輯。我希望我能說出問題。

你能告訴我如何爲我的系統做這樣的工作嗎?我如何使用時間窗口或如何正確連接它們?

回答

0

對於每個顯示的日誌,您必須選擇相似度總和。這是意圖嗎?爲什麼不加入並選擇總和?它只會選擇與顯示日誌一樣多的行。

一兩件事來決定是推薦的事件和日誌顯示事件之間的最大時間差,與您可以使用Azure的數據流分析的加入,https://msdn.microsoft.com/en-us/library/azure/dn835026.aspx