LoginSignup
3
1

More than 5 years have passed since last update.

【BigQuery】StandardSQLで最頻値(modeやtop)

Last updated at Posted at 2018-12-14

DBのとあるカラムから出現回数が一番多い値(最頻出)をだしたいときに使えるやつです。カテゴライズされた値とかとか。

エクセルだとmodeというので一発でだせるみたいですが(使ったことないけど)
それをBigqueryのStandardSQLでやる方法です。

ちなみにLegacyだと TOPという関数で行けるみたいです。

APPROX_TOP_COUNT

SELECT
  APPROX_TOP_COUNT(x, 1) AS approx_top_count
FROM
  UNNEST(["apple", "apple", "pear", "pear", "pear", "banana"]) AS x;

こう書くことで対象のカラムで最も出現する単語を出すことができます。

スクリーンショット 2018-12-14 16.43.25.png

注意する必要があるのは、
カラム名.value

カラム名.count

という形で2列でてくるところです。

valueのほうには一番多く出てくる単語が表示され、
countのほうには、カラムxの中からvalueが何個でてきたか。が出力されます。

最初は、「countいらねえよ!!」
とか思ったんですけどこれすごくありがたいですね。本当にすみませんでした。

第二引数のところに2とか入れれば上位2件のvalueを出力してくれます。幸せいっぱいですね。

スクリーンショット 2018-12-14 16.48.25.png

参考(ドキュメント)

3
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1