9

bigquery クエリ リファレンスに基づくと、現在、Quantiles では別の列によるグループ化は許可されていません。私は主に、特定の列でグループ化された中央値を取得することに興味があります。私が現在見ている唯一の回避策は、グループ メンバーが where 句の条件である個別のグループ メンバーごとに変位値クエリを生成することです。

たとえば、目的の結果を得たい場合は、列 y の個別の行ごとに以下のクエリを使用します。

SELECT QUANTILE( <column-x>, 1001)
FROM <table>
WHERE 
    <column-y> == <each distinct row in column-y>
  1. ビッグ クエリ チームは、将来、分位数でグループ化できるようにする機能を追加する予定はありますか?
  2. ここで取得しようとしているものを取得するより良い方法はありますか?

ありがとう

4

3 に答える 3

1

変位値を計算するための効率的なアルゴリズムはありますが、それらはいくぶんメモリを消費します。単一のクエリで複数の変位値を計算しようとすると、コストがかかります。

  1. QUANTILES を改善する計画はありますが、タイムラインはわかりません。
  2. 中央値は必要ですか?外れ値をフィルタリングして、残りの平均を計算できますか?
于 2012-09-19T18:25:05.757 に答える
0

orderグループごとのサイズが固定されている場合は、nestとの組み合わせを使用してハッキングできる可能性がありnthます。たとえば、 の値f2ごとに の 9 つの異なる値がある場合f1、中央値は次のようになります。

( からレコード内の f1,nth(5,f2) を選択
  ( から f1,nest(f2) f2 を選択
    テーブルから f1、f2 を選択
    f1、f2でグループ化
    f2で注文
  ) f1 でグループ化
);

サブクエリでソートされた順序が 2 番目に存続することが保証されているかどうかはわかりませんが、group私が試した簡単なテストでは機能しました。

于 2012-09-21T07:30:40.027 に答える