ClickHouse 中 WHERE 子句中 UInt64 字段的条件

Condition on UInt64 field in WHERE clause in ClickHouse

在 ClickHouse Playground 中,UInt64 字段的数据集条件似乎不起作用。例如查询:

SELECT * FROM hits_100m_obfuscated where WatchID = 8120543446287443000

没有 return 任何东西(即使我从数据集中复制了 ID)。如果条件在 UserID 上,则同样如此。但以下工作正常:

SELECT * FROM hits_100m_obfuscated where ClientIP = 3078276782

我猜原因是 ClientIP 字段的类型是 UInt32,但 UserID 和 WatchID 都是 UInt64。我尝试使用 toUInt64 和 CAST,但没有成功。

知道我做错了什么吗?

看来是Playground的bug

作为临时解决方法,您可以使用最喜欢的 HTTP API 客户端(例如 Postman、Fiddler、curl 等)向服务端点发送直接请求:

curl "https://play.clickhouse.tech/api/v20.3/?database=datasets&user=playground&password=clickhouse&query=SELECT+*+FROM+hits_100m_obfuscated+where+WatchID=8927014313511165737+limit+1+format+Vertical"

seems web/frontend issue

SELECT '- '||toString(max(WatchID))||' -', max(WatchID), toString(max(WatchID)) FROM hits_100m_obfuscated


- 9223372033328793741 - | 9223372033328794000   | 9223372033328794000

https://github.com/ClickHouse/ClickHouse/issues/10824