对多个列执行clickhouse topk查询

xmjla07d  于 2021-07-15  发布在  ClickHouse
关注(0)|答案(1)|浏览(693)

在clickhouse中,有没有其他方法可以使用topk查询,
例如:

select topK(10)(AGE,COUNTRY) ...

意思是我想要年龄+国家的前10个组合,我只找到了一个在字段上使用concat和topk的解决方法,不知道还有没有其他方法。

jecbmhm3

jecbmhm31#

可以将列的数组(或元组)传递给topk:

SELECT topK(10)([Age, Country])
FROM table

或者使用简单的计算方法(虽然速度慢得多,但可以提供准确的结果):

SELECT
    Age,
    Country
FROM table
GROUP BY
    Age,
    Country
ORDER BY count() DESC
LIMIT 10

相关问题