首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Postgres :根据Ralph Kimball创建日期维度

Postgres :根据Ralph Kimball创建日期维度
EN

Stack Overflow用户
提问于 2011-08-18 03:32:27
回答 2查看 5.9K关注 0票数 3

我是postgres和DW的新手,我必须像book中给出的那样设计一个DATE Dimension。我在网上看到了很多地方,到目前为止我还没有成功,能解释一下如何填充像'Fiscal Week', 'Fiscal Month', 'Fiscal Half year'这样的字段吗

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-18 04:40:03

我猜您需要10年的日期维度表,其中的所有列都显示在图2.4中(基于Google Books)。签入文档:

用于模板的

  • 格式化函数to_char使用Table 9-21 patterns
  • Extracting函数使用generate_series(start, stop, step interval)

date_part

  • Generating行序列

要获取10年内的所有日期,您可以这样写:

代码语言:javascript
复制
SELECT generate_series('2001-01-01'::date, '2010-12-31'::date, '1 day') AS day;

SELECT count(*) FROM generate_series('2001-01-01'::date, '2010-12-31'::date, '1 day');
 count 
-------
  3652
(1 row)

根据图2.5创建表格,例如:

代码语言:javascript
复制
DROP TABLE IF EXISTS "Date Dimension";
CREATE TABLE "Date Dimension"
(
    "Date Key" serial,
    "Date" date,
    "Full Day Description" text,
    "Day Of Week" text,
    "Calendar Month" text,
    "Calendar Year" integer,
    "Fiscal Year Month" text,
    "Holiday Indicator" text,
    "Weekday Indicator" text 
);

插入命令:

代码语言:javascript
复制
INSERT INTO "Date Dimension"
    ("Date", "Full Day Description", "Day Of Week", "Calendar Month",
    "Calendar Year", "Fiscal Year Month", "Holiday Indicator",
    "Weekday Indicator")
SELECT
    day,
    rtrim(to_char(day, 'Month')) || to_char(day, ' DD, YYYY'),
    to_char(day, 'Day'),
    rtrim(to_char(day, 'Month')),
    date_part('year', day),
    'F' || to_char(day, 'YYYY-MM'),
    '', --omitting (trivial 'Holiday'/'Non-Holiday, but how to get this ??),
    CASE
        WHEN date_part('isodow', day) IN (6, 7) THEN 'Weekend'
        ELSE 'Weekday'
    END
FROM
    generate_series('2001-01-01'::date, '2010-12-31'::date, '1 day') day;

我希望这能给你一些框架和起点。

票数 8
EN

Stack Overflow用户

发布于 2011-08-23 22:40:08

您的财年是如何组织的?电影几点开始?它是否遵循任何标准的4-4-5或4-5-4规则?您最好的选择可能是从CSV文件加载它,就像这个问题的答案中所讨论的那样:4-5-4 National Retail foundation Calendar csv download or function to create。财政年度是出了名的非标准。例如,我们公司的会计年度从7月1日开始。

我必须将字段添加到广播日历的日历维度中(从包括1月1日的一周的星期一开始),并且可以通过一些计算来完成。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7098374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档