Доброе утро! Подскажите пожалуйста, как можно сделать так чтобы groupArray включал и NULL значения.
create table arrayTab (id UInt8,ch_name String, pidArray Array(UInt8),pnameArray Array(Nullable(String))) Engine=Memory;
insert into charges values
(100,'X')
(101,'Y')
(102,NULL);
insert into packs (pack_id,pack_name,charge_id) values
(4,NULL,100)
(2,'A',100)
(3,'C',100)
(1,'A',101)
(3,'B',101)
(1,NULL,102)
(2,'B',102);
insert into arrayTab
select id,max(chname), groupArray(pack_id),groupArray(pack_name) from (
select * from charges c
left join packs p on
c.id=p.charge_id ) pp group by id;
Получается вот так:
select id,ch_name,pidArray,pnameArray from arrayTab;
100 X [4,2,3] ['A','C']
101 Y [1,3] ['A','B']
102 [1,2] B
но хотелось бы видеть:
100 X [4,2,3] ['A',NULL,'C']
101 Y [1,3] ['A','B']
102 [1,2] ['B',NULL]
Чтобы при array join не было ошбки: Sizes of ARRAY-JOIN-ed arrays do not match
select * from arrayTab
array join pidArray,pnameArray;