Mas*_*ary 5 sql count sql-order-by window-functions google-bigquery
我尝试过以下方法,但没有一个有效:
SELECT TOP 50 PERCENT:BigQuery没有top功能LIMIT (SELECT COUNT(*) FROM tabl)/2:原因是 BigQuery 不接受任何非整数值。SET设置中值,然后使用WHERE在 BigQuery 中我会使用window functionpercent_rank()。
select t.* except (prnk)
from (select t.*, percent_rank() over(order by id) prnk from mytable t) t
where prnk <= 0.5
Run Code Online (Sandbox Code Playgroud)
注意:您的问题的任何答案都需要您提供一列来对数据进行排序。我假设该专栏名为id.
一种方法使用窗口函数:
select t.* except (seqnum, cnt)
from (select t.*, row_number() over (order by ?) as seqnum,
count(*) over () as cnt
from t
) t
where seqnum <= cnt / 2;
Run Code Online (Sandbox Code Playgroud)