用于检索表中5个唯一值的SQL脚本(google big query)

时间:2015-05-22 01:37:36

标签: sql google-bigquery

我正在寻找一个查询,我可以在表格中获得唯一值(5)。例如。 该表包含更多100多列。有什么方法可以获得独特的价值。

我正在使用谷歌大查询并尝试此选项

select col1 col2 ... coln
from tablename
where col1 is not null and col2 is not null
group by col1,col2... coln
order by col1, col2... coln
limit 5

但问题是,如果所有列都为空,它会给出零记录

由于 R

2 个答案:

答案 0 :(得分:1)

我认为您可以在Google bigquery中执行此操作,假设列的类型兼容:

select colname, colval
from (select 'col1' as colname, col1 as colvalue
      from t
      where col1 is not null
      group by col1
      limit 5
     ),
     (select 'col2' as colname, col2 as colvalue
      from t
      where col2 is not null
      group by col2
      limit 5
     ),
     . . .

对于那些不熟悉语法的人,from条款中的逗号表示union all,而不是cross join。他们为什么要改变这个?

答案 1 :(得分:0)

尝试这个,我希望它有效

   ;With CTE as (
    select * ,ROW_NUMBER () over (partition by isnull(col1,''),isnull(col2,'')... isnull(coln,'') order by isnull(col1,'')) row_id
    from tablename
    ) select * from CTE where row_id =1