mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-24 16:42:05 +00:00
41 lines
1.7 KiB
SQL
41 lines
1.7 KiB
SQL
DROP TABLE IF EXISTS dest_table_mv;
|
|
DROP TABLE IF EXISTS left_table;
|
|
DROP TABLE IF EXISTS right_table;
|
|
DROP TABLE IF EXISTS dest_table;
|
|
DROP TABLE IF EXISTS src_table;
|
|
DROP VIEW IF EXISTS dst_mv;
|
|
|
|
create table src_table Engine=Memory as system.numbers;
|
|
CREATE MATERIALIZED VIEW dst_mv Engine=Memory as select *, (SELECT count() FROM src_table) AS cnt FROM src_table;
|
|
insert into src_table select * from numbers(2);
|
|
insert into src_table select * from numbers(2);
|
|
insert into src_table select * from numbers(2);
|
|
select * from dst_mv order by number;
|
|
|
|
CREATE TABLE dest_table (`Date` Date, `Id` UInt64, `Units` Float32) ENGINE = Memory;
|
|
create table left_table as dest_table;
|
|
create table right_table as dest_table;
|
|
insert into right_table select toDate('2020-01-01') + number, number, number / 2 from numbers(10);
|
|
|
|
CREATE MATERIALIZED VIEW dest_table_mv TO dest_table as select * FROM (SELECT * FROM left_table) AS t1 INNER JOIN (WITH (SELECT DISTINCT Date FROM left_table LIMIT 1) AS dt SELECT * FROM right_table WHERE Date = dt) AS t2 USING (Date, Id);
|
|
|
|
insert into left_table select toDate('2020-01-01'), 0, number * 2 from numbers(3);
|
|
select 'the rows get inserted';
|
|
select * from dest_table order by Date, Id, Units;
|
|
|
|
insert into left_table select toDate('2020-01-01'), 5, number * 2 from numbers(3);
|
|
select 'no new rows';
|
|
select * from dest_table order by Date, Id, Units;
|
|
|
|
truncate table left_table;
|
|
insert into left_table select toDate('2020-01-01') + 5, 5, number * 2 from numbers(3);
|
|
select 'the rows get inserted';
|
|
select * from dest_table order by Date, Id, Units;
|
|
|
|
drop table dest_table_mv;
|
|
drop table left_table;
|
|
drop table right_table;
|
|
drop table dest_table;
|
|
drop table src_table;
|
|
drop view dst_mv;
|