【问题标题】:Condition on UInt64 field in WHERE clause in ClickHouseClickHouse 中 WHERE 子句中 UInt64 字段的条件
【发布时间】:2020-08-27 13:11:29
【问题描述】:

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

SELECT * FROM hits_100m_obfuscated where WatchID = 8120543446287443000

不返回任何内容(即使我从数据集中复制了 ID)。如果条件在 UserID 上也是如此。但以下工作正常:

SELECT * FROM hits_100m_obfuscated where ClientIP = 3078276782

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

知道我做错了什么吗?

【问题讨论】:

  • 我认为这是操场的一些奇怪错误

标签: clickhouse


【解决方案1】:

看起来是 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"

【讨论】:

    【解决方案2】:
    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

    【讨论】:

    • 谢谢,丹尼斯。将尝试使用客户端安装和运行它。
    猜你喜欢
    • 1970-01-01
    • 2021-04-29
    • 1970-01-01
    • 1970-01-01
    • 2013-08-29
    • 1970-01-01
    • 2011-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多