Qlikview подсчитывает все товары за последние 12 часов.

Учитывая, что у меня есть следующие данные:

enter image description here

Я хочу подсчитать количество различных продуктов, проданных за прошедшие 8 часов. Предположим, сейчас 26/10/2018 23:35:00.

Ожидаемый результат должен быть следующим:

enter image description here

Я работаю в qlikview. Я не знаю, как сделать выражение, чтобы получить то, что я хочу, особенно когда это касается datetime. я должен использовать агрегат или подсчет?

Заранее благодарим за ответ!

Пожалуйста, перейдите по ссылке ниже для этого решения. как сгруппировать время по часам или по 10 минут

Saket Yadav 26.10.2018 07:03
0
1
61
2

Ответы 2

Kindly try this for required output 
    DECLARE @CURR_DATE DATETIME
SET @CURR_DATE=DATEADD(hour,0,'10/26/2018 23:30')

SELECT Product, count(category)
  FROM  Table_1 
where 
  AddedDate between  DATEADD(hour,-1,@CURR_DATE) and @CURR_DATE  
  GROUP BY Product,category,(DATEPART(hh, AddedDate))

Это синтаксис SQL, а не Qlikview.

BrunoMarques 26.10.2018 11:03

Я бы порекомендовал определить флаг для каждой записи в скрипте, чтобы избежать запутанного и сложного анализа множества, который может легко сломаться.

Предполагая, что вы где-то ЗАГРУЖАЕТЕ Datetime, я бы добавил:

LOAD
...
Datetime,
If(Datetime > Today() - 8 / 24, 'Y', 'N') as SoldInLast8Hours
....

Наличие этого нового измерения позволит вам использовать простой анализ множеств, например:

Sum({<SoldInLast8Hours = {'Y'}>} 1)

Или

Count({<SoldInLast8Hours = {'Y'}>} DISTINCT EntryId)

Если у вас есть уникальный идентификатор для каждой строки транзакции.

Другие вопросы по теме