Sql 如何解决数据集市中是否存在两种不同的粒度?

Sql 如何解决数据集市中是否存在两种不同的粒度?,sql,tsql,data-warehouse,datamart,Sql,Tsql,Data Warehouse,Datamart,我们正在从给定的数据源创建数据集市。我在数据集市中创建了以下表格 FactPopulation (Fact table which has population data per year) FactMeeting count (Fact table which has event info occur almost everyday 2005-) DimMeeting Topic (Name of Meetings) DimGeography (Place) DimDate (Date Dim

我们正在从给定的数据源创建数据集市。我在数据集市中创建了以下表格

FactPopulation (Fact table which has population data per year)
FactMeeting count (Fact table which has event info occur almost everyday 2005-)
DimMeeting Topic (Name of Meetings)
DimGeography (Place)
DimDate (Date Dimension)

所以,如果我想分析人口和会议县有不同的粒度。我想按年按月做分析。有没有办法将两个事实表合并成一个或任何建议?

一旦数据汇总到一定的粒度,最简单的方法就是回顾源并按照您想要的粒度生成另一个汇总。考虑创建一个FEB MeSETAN县表,它被卷,所以计数度量是按县。然后将要查找的组合数据作为单个表生成

另一种选择可能是在使用此“新粒度逻辑”和创建FactPopulation事实时使用的逻辑后生成当前的表


这里有很多选择。

什么是FactPopulation?从名字上看,我猜它代表了一个地方随时间推移的人口

那个地方和地理位置一样吗?如果是这样,请将人口作为此维度的属性,并将其设置为2类缓慢变化维度,以说明人口随时间的变化

在评论1后编辑:

如果您建议的事实和维度中有一些示例数据或更完整的列名,这会有所帮助,但我的解释是,这样的模型可以解决您的问题:

dim_event (id,name,...)
dim_geography (id,country,city,...,population,from_date,to_date)
dim_date (id,cal_date,cal_year,cal_month,...)
fact_meeting (event_id,geography_id,date_id,...,attendee_count)
您熟悉缓慢变化的尺寸吗?2型维度将处理人口随时间的变化


您还没有给出您试图满足的业务查询的示例,但如果您在问题中发布了一些,我将使用一些SQL更新此答案,以向您展示此模型如何满足他们的要求。

您能否给出一个所需结果的示例,以及使其成为问题的源数据?我无法想象为什么不同的粒度是一个问题,或者首先粒度是如何不同的。问题是我只想创建一个事实表,而不是两个事实表。所以我想把Factpopulation和FactMettingCount合并到一个表中进行分析。你为什么要这样做?对我来说,这听起来像是拙劣的设计,除非你的问题到目前为止还不清楚有什么原因。事实人口是什么?你需要制定一个算法把它推到下个月?它是同一年的数字,还是每年的数字除以12,或者你可以使用更复杂的算法。所有维度是否都与所有事实相关联?您在使用什么工具进行分析,或者只是编写SQL查询?Factpopulation是基于年份的不同城市的人口计数。其中FactMeeting以每天为基础,我希望将这些数据合并到一起,以便每月和每年进行分析。