SQL, выбор транзакций в час на пользователя - PullRequest
0 голосов
/ 27 апреля 2020

Я изо всех сил пытаюсь понять, как отображать мои данные для каждого ПОЛЬЗОВАТЕЛЯ за ЧАС

Мне нужно, чтобы это выглядело так.

Для 24-часового периода общее количество транзакций в час, за user

      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     

Любая помощь будет отличной!

Спасибо

1 Ответ

1 голос
/ 27 апреля 2020

Обычно вы используете условное агрегирование:

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. Синтаксис различается в разных базах данных.

...