回答

收藏

PostgreSQL-GROUP BY时间戳值?

技术问答 技术问答 199 人阅读 | 0 人回复 | 2023-09-14

我有一张桌子,上面存储着采购订单。每行都有一个时间戳,指示下订单的时间。我希望能够创建一个报告,指出每天,每月或每年的购买数量。我以为我会从tbl_orders/ @% A) S/ ]8 x* x" v% ]9 y) u" p
GROUP BY tbl_orders.purchase_time执行一个简单的SELECT& p( ~3 ~6 D$ ?  |" w" _$ s$ r
COUNT(xxx)并获取该值,但事实证明我无法通过一个timestamp列进行GROUP。& j% d$ v( h* W; \3 ^' a" }. l
还有另一种方法可以做到这一点吗?理想情况下,我希望有一个灵活的解决方案,这样我就可以使用所需的任何时间范围(每小时,每月,每周等)。感谢您提供的任何建议!3 V  G! K2 @/ A: d5 G( y
                ; ^- p/ [+ g: b3 K; J
解决方案:0 h1 L" R5 d+ d6 @
               
  `& S( P5 D; m& o* J7 P3 w8 c# G
5 k3 p, ^, e4 n5 B  X5 W$ f9 D6 r3 ?* _" c
                在这里,按时间戳列进行分组对我来说效果很好,请记住,即使相差1微秒,也将阻止将两行分组在一起。
- S7 r; k1 h( ^9 F要按较大的时间段进行分组,请按timestamp列上的表达式进行分组,该表达式返回适当的截断值。date_trunc可以在这里有用to_char。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则