选择语句是clickhouse的查询数据功能,我们需要使用每个参数的使用。下面我们一一介绍选择相关的。
根据我之前创建的表格如下:
代码语言:javascript复制CREATE TABLE test.action
(
`uid` Int32,
`event_type` String,
`time` DateTime
)
ENGINE = MergeTree
PARTITION BY uid
ORDER BY xxHash32(uid)
SAMPLE BY xxHash32(uid)
SETTINGS index_granularity = 8192
SELECT 查询基本语法如下:
[WITH expr_list|(subquery)]
SELECT [DISTINCT] expr_list
[FROM [db.]table | (subquery) | table_function] [FINAL]
[SAMPLE sample_coeff]
[ARRAY JOIN ...]
[GLOBAL] [ANY|ALL|ASOF] [INNER|LEFT|RIGHT|FULL|CROSS] [OUTER|SEMI|ANTI] JOIN (subquery)|table (ON <expr_list>)|(USING <column_list>)
[PREWHERE expr]
[WHERE expr]
[GROUP BY expr_list] [WITH TOTALS]
[HAVING expr]
[ORDER BY expr_list] [WITH FILL] [FROM expr] [TO expr] [STEP expr]
[LIMIT [offset_value, ]n BY columns]
[LIMIT [n, ]m] [WITH TIES]
[UNION ALL ...]
[INTO OUTFILE filename]
[FORMAT format]
ALL子句 select event_type from action;其实 就是select event_type from action;
DISTINCT子句 如果SELECT DISTINCT被声明,则查询结果中只保留行。
GROUP BY子句 选择结果进行分组功能。
SAMPLE 采样子句启用 数据采集部分时,不会对所有数据执行,而只针对特定数据(样本)执行。例如,如果您需要计算所有访问者的统计信息,只需查询对所有访问者的 1/10执行将结果乘以10个智慧,然后。
ARRAY JOIN子句 用于生成一个包含每个列的表是一种新的使用,该表包含最初列中的单个元素的列,而其他列的值被列重复显示ARRAY JOIN这是最简单的场景。 下面我们看下array join的使用例子,其实他的功能就是把列的数据连接起来,不会做。去重。
代码语言:javascript复制SELECT *
FROM arrays_test
┌─s───────┬─arr─────┐
│ Hello │ [1,2] │
│ World │ [3,4,5] │
│ Goodbye │ [4,5] │
└─────────┴─────────┘
SELECT s, arr FROM arrays_test ARRAY JOIN arr;
┌─s───────┬─arr─┐
│ Hello │ 1 │
│ Hello │ 2 │
│ World │ 3 │
│ World │ 4 │
│ World │ 5 │
│ Goodbye │ 4 │
│ Goodbye │ 5 │
└─────────┴─────┘