2023-12-27 15:47:37 +00:00
|
|
|
DROP TABLE IF EXISTS ttl_group_by_bug;
|
|
|
|
|
|
|
|
CREATE TABLE ttl_group_by_bug
|
|
|
|
(key UInt32, ts DateTime, value UInt32, min_value UInt32 default value, max_value UInt32 default value)
|
|
|
|
ENGINE = MergeTree() PARTITION BY toYYYYMM(ts)
|
|
|
|
ORDER BY (key, toStartOfInterval(ts, toIntervalMinute(3)), ts)
|
|
|
|
TTL ts + INTERVAL 5 MINUTE GROUP BY key, toStartOfInterval(ts, toIntervalMinute(3))
|
|
|
|
SET value = sum(value), min_value = min(min_value), max_value = max(max_value), ts=min(toStartOfInterval(ts, toIntervalMinute(3)));
|
|
|
|
|
|
|
|
INSERT INTO ttl_group_by_bug(key, ts, value) SELECT number%5 as key, now() - interval 10 minute + number, 0 FROM numbers(1000);
|
|
|
|
|
2023-12-27 21:31:56 +00:00
|
|
|
OPTIMIZE TABLE ttl_group_by_bug FINAL;
|
|
|
|
|
2023-12-27 15:47:37 +00:00
|
|
|
SELECT *
|
|
|
|
FROM
|
|
|
|
(
|
|
|
|
SELECT
|
|
|
|
_part,
|
|
|
|
rowNumberInAllBlocks(),
|
|
|
|
(key, toStartOfInterval(ts, toIntervalMinute(3)), ts) AS cur,
|
|
|
|
lagInFrame((key, toStartOfInterval(ts, toIntervalMinute(3)), ts), 1) OVER () AS prev,
|
|
|
|
1
|
|
|
|
FROM ttl_group_by_bug
|
|
|
|
)
|
|
|
|
WHERE cur < prev
|
|
|
|
LIMIT 2
|
|
|
|
SETTINGS max_threads = 1;
|
|
|
|
|
|
|
|
DROP TABLE IF EXISTS ttl_group_by_bug;
|