unt*_*led 5 postgresql amazon-web-services amazon-redshift
我有一个redshift示例表.我想生成一份包含月份数据的报告.到目前为止我找到了以下三种方法.
1. trunc(created_at_date) between '2014-06-01' and '2014-06-30';
2. created_at_date like '2014-06%'
3. created_at_date >= '2014-06-01 00:00:00' and created_at_date <= '2014-06-30 23:59:59'
Run Code Online (Sandbox Code Playgroud)
这样做的最佳和最佳方式是什么?
小智 6
不是第一个,因为它执行不必要的截断(除非您确实有此类未处理的数据)。
1. trunc(created_at_date) between '2014-06-01' and '2014-06-30';
Run Code Online (Sandbox Code Playgroud)
出于明显的原因,绝对不是这个(比如)
2. created_at_date like '2014-06%'
Run Code Online (Sandbox Code Playgroud)
可能是这个:
3. created_at_date >= '2014-06-01 00:00:00' and created_at_date <= '2014-06-30 23:59:59'
Run Code Online (Sandbox Code Playgroud)
但是,由于要求是生成每月报告,我认为这是一项针对多个数据源的重复任务,因此我建议创建一个一次性日历表。
该表将日期映射到月份值,然后您只需将源数据与该表连接并按“月份”列进行分组即可。
PS 刚刚意识到我回答了一个非常“古老”的问题:p
小智 2
怎么样
created_at_date between to_date('20140601','YYYYMMDD') and to_date('20140630','YYYYMMDD')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4591 次 |
| 最近记录: |