在 BigQuery 中查找模式

Rom*_*man 5 google-bigquery

众数是集合中出现次数最多的值。

我想要这样的东西:

SELECT
    t.id as t_id,
    GROUP_CONCAT(t.value) as value_list,
    MODE(t.value) AS value_mode
FROM dataset.table as t
GROUP BY t_id
Run Code Online (Sandbox Code Playgroud)

例如:

t_id    value_list     value_mode
1       2,2,2,3,6,6    2
Run Code Online (Sandbox Code Playgroud)

这是怎么做到的?

编辑: value_list 只是为了说明目的。只需要模式

Mik*_*ant 3

select id, value as value_list, v as value_mode
from (
  select 
    id, value, v, 
    count(1) as c, 
    row_number() over(partition by id order by c desc) as top
  from (
    select id, value, split(value) as v 
    from dataset.table 
  )
  group by id, value, v
)
where top = 1
Run Code Online (Sandbox Code Playgroud)