作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一列时间戳:
time_column
2016-02-02 08:09:59.351000
2016-02-02 15:09:21.756000
2016-02-02 15:42:33.287000
2016-02-02 15:53:26.394000
我想编写一个查询,输出给定月份的不同时间戳。
因此,输出将是
jan feb mar apr may jun ....
9 1 10 ...
这是否可以在 sql 中执行,或者我是否需要分别为每个月运行查询(通过为每个月计算不同的 date_trunc(...)
之类的操作)?
编辑:
根据查看数据透视表的建议,我尝试构建如下解决方案(但我认为 Redshift 接受交叉表可能存在问题)。我希望真正的问题是我的查询而不是 redshift。
SELECT * FROM crosstab(
$$SELECT
column1,
column2,
date_part('Month', my_timestamp) as month,
count(date_trunc('Month',my_timestamp))
FROM my_table
GROUP BY column1, column2, month$$,
$$SELECT m FROM generate_series(1,6) m$$
) AS (
column1 CHARACTER VARYING,
column2 CHARACTER VARYING,
"Jan" INT,
"Feb" INT,
"Mar" INT,
"Apr" INT,
"May" INT,
"Jun" INT
)
抛出错误:
[42883] ERROR: function crosstab("unknown", "unknown") does not exist Hint: No function matches the given name and argument types. You may need to add explicit type casts.
最佳答案
遗憾的是,Redshift 不支持数据透视操作(即交叉表)。
你可以
按照 Jorge 在评论中的建议进行操作并手动选择必要的数据
如果该数据足够小,则输出到可以处理枢轴的程序中。
关于SQL( Redshift ): Select distinct dates for each month from a column of timestamps,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37794636/
我是一名优秀的程序员,十分优秀!