mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-10-19 23:10:50 +00:00
97f2a2213e
* Move some code outside dbms/src folder * Fix paths
83 lines
2.7 KiB
SQL
83 lines
2.7 KiB
SQL
DROP TABLE IF EXISTS datetime_table;
|
|
|
|
-- Create a table with DateTime column, but not used in partition key
|
|
CREATE TABLE datetime_table
|
|
(
|
|
t DateTime,
|
|
name String,
|
|
value UInt32
|
|
) ENGINE = MergeTree()
|
|
ORDER BY (t, name)
|
|
PARTITION BY value;
|
|
|
|
INSERT INTO datetime_table VALUES (toDateTime('2016-01-01 00:00:00'),'name1',2);
|
|
INSERT INTO datetime_table VALUES (toDateTime('2016-01-02 00:00:00'),'name2',2);
|
|
INSERT INTO datetime_table VALUES (toDateTime('2016-01-03 00:00:00'),'name1',4);
|
|
|
|
-- min_time and max_time are not filled
|
|
|
|
SELECT partition, MIN(min_time) as min_time, MAX(max_time) as max_time
|
|
FROM system.parts
|
|
WHERE database = currentDatabase() and table = 'datetime_table' AND active = 1
|
|
GROUP BY partition
|
|
ORDER BY partition ASC
|
|
FORMAT CSV;
|
|
|
|
DROP TABLE IF EXISTS datetime_table;
|
|
|
|
-- Create a table with DateTime column, this time used in partition key
|
|
CREATE TABLE datetime_table
|
|
(
|
|
t DateTime,
|
|
name String,
|
|
value UInt32
|
|
) ENGINE = MergeTree()
|
|
ORDER BY (t, name)
|
|
PARTITION BY toStartOfDay(t);
|
|
|
|
INSERT INTO datetime_table VALUES (toDateTime('2016-01-01 00:00:00'),'name1',2);
|
|
INSERT INTO datetime_table VALUES (toDateTime('2016-01-01 02:00:00'),'name1',3);
|
|
INSERT INTO datetime_table VALUES (toDateTime('2016-01-02 01:00:00'),'name2',2);
|
|
INSERT INTO datetime_table VALUES (toDateTime('2016-01-02 23:00:00'),'name2',5);
|
|
INSERT INTO datetime_table VALUES (toDateTime('2016-01-03 04:00:00'),'name1',4);
|
|
|
|
-- min_time and max_time are now filled
|
|
|
|
SELECT partition, MIN(min_time) as min_time, MAX(max_time) as max_time
|
|
FROM system.parts
|
|
WHERE database = currentDatabase() and table = 'datetime_table' AND active = 1
|
|
GROUP BY partition
|
|
ORDER BY partition ASC
|
|
FORMAT CSV;
|
|
|
|
DROP TABLE IF EXISTS datetime_table;
|
|
|
|
-- Create a table with DateTime column, this time used in partition key, but not at the first level
|
|
CREATE TABLE datetime_table
|
|
(
|
|
t DateTime,
|
|
name String,
|
|
value UInt32
|
|
) ENGINE = MergeTree()
|
|
ORDER BY (t, name)
|
|
PARTITION BY (name, toUInt32(toUnixTimestamp(t)/(60*60*24)) );
|
|
|
|
-- We are using a daily aggregation that is independant of the timezone, add data also
|
|
|
|
INSERT INTO datetime_table VALUES (1451606400,'name1',2);
|
|
INSERT INTO datetime_table VALUES (1451613600,'name1',3);
|
|
INSERT INTO datetime_table VALUES (1451696400,'name2',2);
|
|
INSERT INTO datetime_table VALUES (1451775600,'name2',5);
|
|
INSERT INTO datetime_table VALUES (1451793600,'name1',4);
|
|
|
|
-- min_time and max_time are now filled
|
|
|
|
SELECT partition, toUnixTimestamp(MIN(min_time)) as min_unix_time, toUnixTimestamp(MAX(max_time)) as max_unix_time
|
|
FROM system.parts
|
|
WHERE database = currentDatabase() and table = 'datetime_table' AND active = 1
|
|
GROUP BY partition
|
|
ORDER BY partition ASC
|
|
FORMAT CSV;
|
|
|
|
DROP TABLE IF EXISTS datetime_table;
|