按 clickhouse 中的可空字段进行分组

问题描述 投票:0回答:1

我做错了什么? 按可为空字段“vers_to”聚合,看起来像是奇怪的聚合结果。 有 3 行为空值,3 行非空值。

select version();
--24.1.4.20

drop table sc.check_grp_eaist_v_lot;

CREATE TABLE sc.check_grp_eaist_v_lot
(
    vers_date  DateTime,
    id         Decimal(38,6),
    vers_to    Nullable(DateTime)
)
ENGINE = MergeTree
PRIMARY KEY (vers_date, id)
ORDER BY (vers_date, id);

insert into sc.check_grp_eaist_v_lot(vers_date,id,vers_to) 
  values(parseDateTime('2024-04-15 03:00:00', '%Y-%m-%d %H:%i:%s'),95945837,null),
        (parseDateTime('2024-04-15 03:00:00', '%Y-%m-%d %H:%i:%s'),95945945,null),
        (parseDateTime('2024-04-15 03:00:00', '%Y-%m-%d %H:%i:%s'),95945950,null)
        (parseDateTime('2024-04-15 03:00:00', '%Y-%m-%d %H:%i:%s'),95945836,parseDateTime('2024-04-18 03:00:00', '%Y-%m-%d %H:%i:%s')),
        (parseDateTime('2024-04-15 03:00:00', '%Y-%m-%d %H:%i:%s'),95945944,parseDateTime('2024-04-18 03:00:00', '%Y-%m-%d %H:%i:%s')),
        (parseDateTime('2024-04-15 03:00:00', '%Y-%m-%d %H:%i:%s'),95945948,parseDateTime('2024-04-18 03:00:00', '%Y-%m-%d %H:%i:%s'));   

select vers_to,sum(1) as cnt
from   sc.check_grp_eaist_v_lot
group by vers_to

vers_to            |cnt|
-------------------|---|
                   |  0|
2024-04-18 05:00:00|  6|

预期结果:

vers_to            |cnt|
-------------------|---|
                   |  3|
2024-04-18 05:00:00|  3|
group-by null clickhouse
1个回答
0
投票

找到https://github.com/ClickHouse/ClickHouse/issues/61313 一切都解释清楚了。

© www.soinside.com 2019 - 2024. All rights reserved.