有一张像
用户身份 | event_id |
---|---|
一 | 一 |
一 | 2 |
2 | 3 |
2 | 四 |
2 | 5 |
你需要得到这样的输出
用户身份 | 事件 |
---|---|
一 | [12] |
2 | [3, 4, 5] |
在clickhouse中,我会使用这种结构
select user_id,
groupUniqArray(event_id) as events
from db
group by user_id
但垂直不知道。
有一张像
用户身份 | event_id |
---|---|
一 | 一 |
一 | 2 |
2 | 3 |
2 | 四 |
2 | 5 |
你需要得到这样的输出
用户身份 | 事件 |
---|---|
一 | [12] |
2 | [3, 4, 5] |
在clickhouse中,我会使用这种结构
select user_id,
groupUniqArray(event_id) as events
from db
group by user_id
但垂直不知道。
有一个my_table
这样的表:
第 1 列 | 第 2 列 | 第 3 列 | 第 4 列 |
---|---|---|---|
一个 | b | C | d |
米 | X | C | d |
米 | X | 是的 | z |
需要从 中获取所有具有唯一值的行Column2
,即 应该得到这样的东西:
第 1 列 | 第 2 列 | 第 3 列 | 第 4 列 |
---|---|---|---|
一个 | b | C | d |
米 | X | C | d |
DISTINCT
但是,根据请求尝试处理:
SELECT DISTINCT ON (Column2) *
FROM my_db.my_table
我收到一个错误:
SQL Error [62]: ClickHouse exception, code: 62, host: localhost, port: 8123; Code: 62, e.displayText() = DB::Exception: Syntax error: failed at position 54 ('.') (line 2, col 18): .my_table. Expected one of: UNION, LIMIT, WHERE, WINDOW, end of query, HAVING, GROUP BY, INTO OUTFILE, OFFSET, PREWHERE, Comma, ORDER BY, SETTINGS, FROM, FORMAT, WITH, token (version 21.7.3.14 (official build))
例如,我使用了https://clickhouse.com/docs/ru/sql-reference/statements/select/distinct/
告诉我我做错了什么?错误消息没有太大帮助。
我正在编写一种方法,其中对数据库有两个查询。第一个表的第一个请求正常完成,推导出必要的结果。对另一个表的第二次查询失败,并出现一个错误,即没有足够的列,尽管这些列不在已处理的表中。主机 [myHost] 返回错误:代码:47,e.displayText() = DB::Exception: Missing columns:(listing columns from another table)。
public function myMethod($par1, $par2)
{
// first query
$dataOffer = $this->getBuilder()
->table('table1')
->select('countries')
->where('link', $par2)
->get();
$result1 = Arr::first($dataOffer->rows)['countries'];
// second query
$dataUser = $this->getBuilder()
->table('table2')
->select('country_code')
->where('start_ip', '<=', $par1)
->where('end_ip', '>=', $par1)
->get();
$result2 = Arr::first($dataUser->rows)['country_code'];
}
大家好。请帮我弄清楚。有一个由 4 台 2x2 机器组成的 clickhouse 集群。ReplicationMergeTree 表已创建。上面是分布式表。Insert 变为 ReplicationMergeTree 表中。从分布式表中采样。问题是写入的行数与 select 返回的不匹配。我查看了 clickhouse 日志 - 消息“使用 ID .... N 行编写块”。这里的数字与预期收敛。如果将 ReplicationMergeTree 替换为 MergeTree,则不存在此类问题。可能是什么问题呢?在哪里寻找?谢谢
ClickHouse 有一个包含 60 亿条事件日志条目的表。有一个包含用户名的字段,一个包含主题的字段和一个包含对该主题的操作的字段。有没有办法通过用户名和他的独特项目列表快速获得结果?
查看请求
SELECT distinct(item) FROM table WHERE user_id = 'Вася'
和
SELECT item FROM table WHERE user_id = 'Вася' GROUP BY item
分别工作 31 秒和 22 秒。
迭代次数以数十万为单位。