Sql Query Создать почасовую продажу до 5 товаров в день - PullRequest
0 голосов
/ 22 мая 2018

Мне нужно показать отчет по количеству часовых продаж пяти лучших продуктов за весь день

Следующий мой запрос

Select count(*) as SALES_COUNT,
       PT.name,
       EXTRACT(HOUR FROM T.created) as hour 
  FROM PRODUCT_TBL P INNER JOIN TRANSACTION_TBL T on T.PID = P.ID 
 WHERE T.created <= '2018-05-22 23:50:58' 
   AND T.created >= '2018-05-22 00:00:00' 
   AND P.ID IN (Select P.PID
                  FROM PRODUCT_TBL P 
                       INNER JOIN TRANSACTION_TBL T on T.PID = P.ID 
                 WHERE T.created <= '2018-05-22 23:50:58' 
                   AND T.created >= '2018-05-22 00:00:00' 
                 GROUP BY PT.ID,
                 order by COUNT(*) desc LIMIT 5) 
 GROUP BY PT.name, 
          hour 
 ORDER BY hour asc, 
          TRANSACTION_COUNT

Но это сгенерирует ежедневную пятерку, мне нужна почасовая пятерка лучших.

Пример данных

 Transaction_TBL
   ID PID AMOUNT     Created             Modified 
    1  1   35     2018-05-22 16:30:58 2018-05-22 16:30:58
    2  1   35     2018-05-22 16:30:60 2018-05-22 16:30:60
    3  1   35     2018-05-22 16:31:60 2018-05-22 16:31:60
    4  1   35     2018-05-22 16:40:58 2018-05-22 16:40:58
    ----------
    5  2   10     2018-05-22 16:15:58 2018-05-22 16:15:58
    6  2   10     2018-05-22 16:15:58 2018-05-22 16:15:58
    7  2   10     2018-05-22 16:15:58 2018-05-22 16:15:58
    ----------
    8  3   05     2018-05-22 16:45:58 2018-05-22 16:45:58
    ----------
    ----------
    9  5   135    2018-05-22 18:01:58 2018-05-22 18:01:58
   10  5   135    2018-05-22 18:01:58 2018-05-22 18:01:58
    ----------
    6  7   110    2018-05-22 18:45:58 2018-05-22 18:45:58
    ----------
    7  1   15     2018-05-22 18:59:58 2018-05-22 18:59:58
    ----------
    ----------
    8  4   15     2018-05-23 01:10:58 2018-05-23 01:10:58
    9  5   15     2018-05-23 12:15:58 2018-05-23 12:15:58

PRODUCT TBL
ID NAME
1  P1
2  P2
3  P3
4  P4
5  P5
6  P6
7  P7
8  P8

Ожидаемый результат

Product SALES_COUNT HOUR
    P1      04        16 
    ----------
    P2      03        16
    ----------
    P3      01        16
    ----------
    P5      02        18 
    ----------
    P7     110        18
    ----------
    P1      01        18

Как мне этого добиться

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...