2021-10-29 11:51:41 +00:00
|
|
|
drop table if exists x;
|
|
|
|
create table x (i UInt64, j UInt64, k UInt64, projection agg (select sum(j), avg(k) group by i), projection norm (select j, k order by i)) engine MergeTree order by tuple();
|
|
|
|
|
|
|
|
insert into x values (1, 2, 3);
|
|
|
|
|
2023-05-10 01:35:13 +00:00
|
|
|
set optimize_use_projections = 1, use_index_for_in_with_subqueries = 0;
|
2021-10-29 11:51:41 +00:00
|
|
|
|
|
|
|
select sum(j), avg(k) from x where i in (select number from numbers(4));
|
|
|
|
|
|
|
|
select j, k from x where i in (select number from numbers(4));
|
|
|
|
|
|
|
|
drop table x;
|
2022-03-26 02:17:23 +00:00
|
|
|
|
|
|
|
-- Projection analysis should not break other IN constructs. See https://github.com/ClickHouse/ClickHouse/issues/35336
|
|
|
|
create table if not exists flows (SrcAS UInt32, Bytes UInt64) engine MergeTree() order by tuple();
|
|
|
|
|
|
|
|
insert into table flows values (15169, 83948), (12322, 98989), (60068, 99990), (15169, 89898), (15169, 83948), (15169, 89898), (15169, 83948), (15169, 89898), (15169, 83948), (15169, 89898), (15169, 83948), (15169, 89898);
|
|
|
|
|
|
|
|
select if(SrcAS in (select SrcAS from flows group by SrcAS order by sum(Bytes) desc limit 10) , SrcAS, 33) as SrcAS from flows where 2 == 2 order by SrcAS;
|
|
|
|
|
|
|
|
drop table flows;
|