2016-08-04 75 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