如何使用[总计]修饰符的结果

时间:2019-07-09 15:43:31

标签: clickhouse

我们有修饰符 [with totals] ,它可以汇总所有行中的值并获得键值= 0或null或smth这样的总结果 问题是我不明白如何在下次计算中使用这些值

也许我使用了错误的格式

select processing_date,count(*) 
from `telegram.message`
where processing_date>='2019-05-01'
group by processing_date with totals

2 个答案:

答案 0 :(得分:0)

文档说

  

您可以在子查询中使用WITH TOTALS,包括   JOIN子句(在这种情况下,将合计各自的总值)。

JOIN中的示例子查询CH tests scripts in github):

SELECT k, s1, s2
FROM
(
    SELECT intDiv(number, 3) AS k, sum(number) AS s1
    FROM
    (
        SELECT *
        FROM system.numbers
        LIMIT 10
    )
    GROUP BY k WITH TOTALS
)
ANY LEFT JOIN
(
    SELECT intDiv(number, 4) AS k, sum(number) AS s2
    FROM
    (
        SELECT *
        FROM system.numbers
        LIMIT 10
    )
    GROUP BY k WITH TOTALS
) USING (k)
ORDER BY k ASC

/* Result: 
┌─k─┬─s1─┬─s2─┐
│ 0 │  3 │  6 │
│ 1 │ 12 │ 22 │
│ 2 │ 21 │ 17 │
│ 3 │  9 │  0 │
└───┴────┴────┘

Totals:
┌─k─┬─s1─┬─s2─┐
│ 0 │ 45 │ 45 │
└───┴────┴────┘
*/

作为解决方法,您可以使用client libraries合并多个总计的结果。

答案 1 :(得分:0)

使用“汇总”而不是“总计”可以确定格式问题