0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SQLの実行順序とエイリアス

Posted at

もしかしたら当たり前なのかもしれないが、自分は不思議に感じたのでメモ。

SQLの実行順序

(私が認識している)SQLの実行順序はこの通り。

SQLの実行順序
FROM句

JOIN句

WHERE句

GROUP BY句

HAVING句

SELECT句

ORDER BY句

LIMIT句

実行順序とエイリアス

となると、SELECT文でエイリアスを使った場合に、group by句でそのエイリアスは使えないのでは?と思っていました。しかし、(少なくともBigQueryでは)group by句でもエイリアスが使えるようです。GPT君に聞いた所、ユーザーフレンドリーな設計として取り入れられているDBが多いとのこと。

BigQueryのサンプルを使った確認

使用するテーブル

group byでエイリアスを使わない場合

エイリアス未使用
select
  product_category as category,
  round(avg(cost), 2) as avg_cost
from
  `sql-book-440810.sample.products`
group by
  product_category

結果

group byでエイリアスを使う場合

エイリアス使用
select
  product_category as category,
  round(avg(cost), 2) as avg_cost
from
  `sql-book-440810.sample.products`
group by
  category

結果

比較結果

同じだね☆

0
0
0

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?