我做错了什么? 按可为空字段“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|