Считать по минутам в Riak TS
Я пытаюсь понять недавно добавленную группу в Riak TS.
Я не могу найти способ сгруппировать результаты по минутам, например, подсчитать. Я покажу пример ниже.
CREATE TABLE Results
(
result VARCHAR NOT NULL,
time TIMESTAMP NOT NULL,
PRIMARY KEY (
(QUANTUM(time, 1, 'm')),
time
)
)
Вставки
INSERT INTO FreightMinuteResult VALUES ('Novo', '2017-12-07 12:03:45Z');
INSERT INTO FreightMinuteResult VALUES ('Novo', '2017-12-07 12:04:45Z');
INSERT INTO FreightMinuteResult VALUES ('Novo', '2017-12-07 12:05:45Z');
INSERT INTO FreightMinuteResult VALUES ('Novo', '2017-12-07 12:05:46Z');
запрос
select count(*) from FreightMinuteResult where time > '2017-12-07 12:01:00Z' and time < '2017-12-07 12:06:00Z' group by time;
Результат
+--------+--------------------+
|COUNT(*)| time |
+--------+--------------------+
| 1 |2017-12-07T12:04:45Z|
| 1 |2017-12-07T12:03:45Z|
| 1 |2017-12-07T12:05:45Z|
| 1 |2017-12-07T12:05:46Z|
+--------+--------------------+
Как посчитать количество вхождений в минуту, используя Riak TS?
Благодарю.
1 ответ
Квант используется для организации данных в бэкэнде, чтобы упростить операции запроса, в то время как группировка использует точное значение указанного поля. Метки времени 2017-12-07T12:05:45Z
а также 2017-12-07T12:05:46Z
происходят в одну и ту же минуту и поэтому будут храниться в том же месте на диске, но они по-прежнему будут храниться в виде отдельных значений меток времени второго разрешения, которые будут сгруппированы отдельно.
Если вы хотите иметь возможность группировать по минутам, вам нужно либо округлить временные метки при вставке, либо изменить таблицу, включив в нее поле минут, которое можно сгруппировать.