TOPN_ARRAY

功能概述

统计出现频率最高的前 N 个值,返回 ARRAY 类型,只包含值本身(不含计数),按频率降序排列。

语法

TOPN_ARRAY(<expr>, <n>)

参数说明

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

使用示例

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

相关文档

  • TOPN — 同时返回值和出现次数
  • APPROX_TOP_K — 近似 Top K,适合大数据量场景
联系我们
预约咨询
微信咨询
电话咨询