BigQuery でクエリ結果の並び替えができるようになりました(Preview)

2023.05.24

こんにちは!エノカワです。

BigQuery でクエリ結果を並び替える機能プレビュー となりました。

You can now sort your query results by using the sort menu next to a column name. This feature is in preview.

列名の横にある並べ替えメニューを使用して、クエリ結果を並べ替えることができるみたいです!
さっそく使ってみました。

並べ替えメニューを使用する

一般公開データセットのGoogle Trendsのクエリ結果で試してみます。

トップ画面の「Google トレンドのデモクエリを試す」の[このクエリを試す]をクリックします。

すると、下記クエリが入力されたエディタ画面が表示されます。

-- This query shows a list of the daily top Google Search terms.
SELECT
   refresh_date AS Day,
   term AS Top_Term,
       -- These search terms are in the top 25 in the US each day.
   rank,
FROM `bigquery-public-data.google_trends.top_terms`
WHERE
   rank = 1
       -- Choose only the top term each day.
   AND refresh_date >= DATE_SUB(CURRENT_DATE(), INTERVAL 2 WEEK)
       -- Filter to the last 2 weeks.
GROUP BY Day, Top_Term, rank
ORDER BY Day DESC
   -- Show the days in reverse chronological order.

直近二週間の Google 検索上位の用語リストを表示するクエリのようです。

[実行]をクリックして、クエリ結果を表示します。

列名の横にが表示されています!

昇順/降順に並び替え

Dayの横のをクリックすると、並び替えメニューが表示されました。

↑昇順に並び替えをクリックします。

Dayが昇順で並び替えられました。

Dayの横にが表示され、昇順になっていることが分かるようになっていますね。

この状態で、(上向き矢印)をクリックしてみると、、、

矢印が逆方向(↑から↓)にひっくり返るアニメーションの後、Dayが降順で並び替えられました。

矢印ワンクリックで逆順に並び替えができるんですね。(便利!)

並び替えを解除

Dayの横のをクリックし、並び替えを解除をクリックします。

矢印の表示が消え、並び替えが解除されました。

ちなみに、Dayが並び替えられた状態でTop_Termの横のから並び替えを実行することもできます。

Top_Termは並び替えられますが、Dayの並び替えは解除されました。
複数列の並び替えは出来ないようです。

プレビュー表示では並べ替えメニューは表示されない

先ほどのクエリで使用したbigquery-public-data.google_trends.top_termsテーブルデータのプレビュー表示です。

列名の横には表示されていませんね。
テーブルデータのプレビュー表示では、並べ替え機能は使用できないようです。

並び替えで処理されるスキャン量が表示される

下記クエリでbigquery-public-data.google_trends.top_termsテーブルデータ全件をクエリ結果に表示させます。

SELECT * FROM `bigquery-public-data.google_trends.top_terms`;

Dayの横のをクリックすると、、、

並び替えメニューに並び替えで 2.85 GB を処理しますと表示されました。

並び替えで処理されるスキャン量が表示されるようです。(親切!)

並び替えで実行されたクエリ

並び替えで実行されたクエリは、画面下部のクエリ履歴(個人履歴またはプロジェクト履歴)から確認することができます。

下記は、Dayを昇順で並び替えを実行したときのクエリです。

SELECT * FROM `{PROJECT_ID}._e85c78912642b1720bc431ae3d4edb397f9e538c.anon52023009_1536_4636_94a1_a9dddb466276` ORDER BY `Day` ASC

※プロジェクトIDの箇所は{PROJECT_ID}に置き換えています。

一時テーブルに対してORDER BYが実行されていることが分かりますね。

ちなみに、上記クエリの処理されたバイト数0 Bになっていました。
Dayの並び替えメニューにスキャン量が表示されていなかったのはそのためのようです。

まとめ

以上、BigQuery でクエリ結果を並び替える機能を使ってみました。

これまで、並び替えのためにクエリを再実行したり、そのクエリ結果の最後のページに移動して逆順だとどうなるか確認したりしていました。
並び替え機能を使えばその手間が減るので、個人的に嬉しい機能です!

ぜひ活用してみて下さい。

参考