TOPN

功能概述

统计出现频率最高的前 N 个值,返回 JSON 对象,格式为

{"值":出现次数, ...}
{"值":出现次数, ...}
,按频率降序排列。

语法

TOPN(<expr>, <n>)

参数说明

  • <expr>
    <expr>
    :要统计的列或表达式。注意:仅支持字符串兼容类型(STRING/VARCHAR),不支持数值类型。
  • <n>
    <n>
    :INT 类型,返回的 Top N 数量。

使用示例

-- 统计出现最多的前 2 个值(必须为字符串类型) SELECT topn(v, 2) FROM (VALUES ('a'),('a'),('a'),('b'),('b'),('c')) t(v); -- {"a":3,"b":2} -- 数值类型需先 CAST 为 STRING SELECT topn(CAST(v AS STRING), 2) FROM (VALUES (3),(3),(3),(2),(2),(1)) t(v); -- {"3":3,"2":2} -- GROUP BY 分组 SELECT k, topn(v, 2) FROM (VALUES ('x','a'),('x','a'),('x','b'),('y','c'),('y','c'),('y','c')) t(k,v) GROUP BY k; -- x | {"a":2,"b":1} -- y | {"c":3}

相关文档

  • TOPN_ARRAY — 只返回 Top N 值列表,不含计数
  • APPROX_TOP_K — 近似 Top K,适合大数据量场景
联系我们
预约咨询
微信咨询
电话咨询