【问题标题】:SQL, selecting transactions per hour, per userSQL,每个用户每小时选择事务
【发布时间】:2020-04-27 15:47:02
【问题描述】:

我正在努力弄清楚如何按用户每小时显示我的数据

我需要它看起来像这样。

在 24 小时内,每个用户每小时的总交易量

      0600    0700    0800    0900 etc
Brian   4       3        4       2
Ange    0       2        1       1
Simon   0       0        1       1

数据长这样.....

GENERATED_DATE          RAC_FULLNAME
2020-04-23 06:37:48.000 Brian                   
2020-04-23 06:43:52.000 Brian                          
2020-04-23 06:50:46.000 Brian                          
2020-04-23 06:55:44.000 Brian                            
2020-04-23 07:35:23.000 Brian                        
2020-04-23 07:41:32.000 Brian                         
2020-04-23 07:47:43.000 Brian                           
2020-04-23 07:54:51.000 Ange                              
2020-04-23 07:58:11.000 Ange                                
2020-04-23 08:02:08.000 Brian                           
2020-04-23 08:06:25.000 Ange                               
2020-04-23 08:11:38.000 Brian                           
2020-04-23 08:39:31.000 Brian                          
2020-04-23 08:42:04.000 Brian                            
2020-04-23 08:59:25.000 Simon                          
2020-04-23 09:07:31.000 Ange                               
2020-04-23 09:27:37.000 Simon                            
2020-04-23 09:28:48.000 Brian                           
2020-04-23 09:31:34.000 Brian     

任何帮助都会很棒!

谢谢

【问题讨论】:

  • 请用您正在使用的数据库标记您的问题。日期函数是特定于供应商的。

标签: sql date group-by


【解决方案1】:

您通常会使用条件聚合:

select
    rac_fullname
    sum(case when extract(hour from generated_date) = 6 then 1 else 0 end) hour_06,
    sum(case when extract(hour from generated_date) = 7 then 1 else 0 end) hour_07,
    ...
from mytable
where generated_date > current_date
group by rac_fullname

您没有告诉您使用的是哪个数据库,因此上述查询使用标准函数extract()current_date。语法因数据库而异。

【讨论】:

  • 谢谢。我们使用的是 SQL 2008(即将升级!)
猜你喜欢
  • 1970-01-01
  • 2016-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多