【问题标题】:Get all columns with groupby clickhouse使用 groupby clickhouse 获取所有列
【发布时间】:2020-10-16 18:15:58
【问题描述】:

我正在尝试为问题数大于 1 的学生获取 clickhouse 中的所有列。我错过了什么?

SELECT * FROM table_1 PREWHERE IDNUMBER IN (SELECT IDNUMBER, COUNT(QUESTIONS) as XXX FROM table_1 GROUP BY IDNUMBER HAVING XXX > 1)

这是我得到的错误:

DB::Exception: Number of columns in section IN doesn't match. 1 at left, 2 at right.: While executing MergeTreeThread

【问题讨论】:

    标签: sql join select count clickhouse


    【解决方案1】:

    子查询应该只返回一列,而它包含两列:

    SELECT * 
    FROM table_1 PRE
    WHERE IDNUMBER IN (SELECT IDNUMBER FROM table_1 GROUP BY IDNUMBER HAVING COUNT(*) > 1)
    

    【讨论】:

    • XXX 未在您的情况下定义,即未考虑问题的数量
    • @tandem:我已经改变了。我使用了COUNT(*),但如果QUESTIONS 是一个可为空的列,您可以将其更改为COUNT(QUESTIONS)
    • QUESTIONS 在这种情况下可以为空。如果它不可为空,如何处理?
    • @tandem: 如果它可以为空,只需将上述查询中的COUNT(*) 替换为COUNT(QUESTIONS)
    • 很遗憾,我没有明确说明。如果 QUESTIONS 不可为空,我们如何处理?如果我错了,请纠正我,COUNT(*) 你会考虑所有列,而不一定是 QUESTIONS,因此如果任何列的计数 > 1,它将返回它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-12
    • 2021-08-26
    • 2018-07-10
    • 2021-10-15
    • 2020-05-08
    • 1970-01-01
    相关资源
    最近更新 更多