我是编程新手,找不到答案。
我有以下维度(表格)和事实表:
- 客户:CustomerId , HomeRegion
- 区域:RegionId,RegionName
- 我的时间:id,我的小时
- 事实表:CustomerId、RegionId、TimeId、FactId
我必须报告为:HomeRegion、Hour、RegionName、UserPercentage。
如示例所示,只有 3.67% 的家乡是A 的人会在上午 9 点搬到B,依此类推。
我应该创建一个类似的。
问题是获取用户百分比。这是我到目前为止所做的代码。
SELECT c.HomeRegion, mt.myhour as Time, r.RegionName as CurrentRegion,
(SELECT COUNT(*)
/*number of users who move from their home
region to CurrentRegion at specific time*/
)/COUNT(c.CustomerId)*100 as UserPercentage
FROM dbo.FactTable ft
inner join dbo.Customer c
ON ft.CustomerId = c.CustomerId
inner join dbo.myTime mt
ON ft.TimeId = mt.ID
inner join dbo.Regions r
ON ft.RegionId = r.RegionId
WHERE mt.myhour = '09'
GROUP BY c.HomeRegion, mt.myhour, r.RegionName
ORDER BY c.HomeRegion, r.RegionName