Skip to Content
高度な Snowflake
book

高度な Snowflake

by Muhammad Fasih Ullah
September 2025
Beginner to intermediate
210 pages
3h 24m
Japanese
O'Reilly Media, Inc.
Content preview from 高度な Snowflake

第3章. Snowflake SQL

この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com

この章では、より高度なSnowflake SQL関数のいくつかを見ていく。まず、Snowflakeの実行順序について見てから、さまざまなウィンドウ関数に移り、どこで使えるかを見ていこう。続いて、Snowflakeの地理空間関数について学ぶ。

実行順序

Snowflakeは非常に論理的なSQL句の実行順序に従っている。しかし、QUALIFY 節が導入されたことで、少し面白くなった。ウィンドウ関数やQUALIFY を使用している多くの Snowflake ユーザは、何がいつ実行されるのか、それがクエリの結果にどのように影響するのかについて混乱していた。 要するに、QUALIFY 節はデータをフィルタリングするので、WHERE 節と非常に類似性がある。しかし、実行順序がQUALIFY 節と異なるため、混乱が生じる。SnowflakeはSQL句を以下の順序で実行する:

  1. FROM

  2. WHERE

  3. GROUP BY

  4. HAVING

  5. WINDOW

  6. QUALIFY

  7. DISTINCT

  8. ORDER BY

  9. LIMIT

次のクエリを実行するとどうなるかを見てみよう:

SELECT *
FROM legends
WHERE first_name = 'Cristiano'
   AND last_name = 'Ronaldo';

これは単純なクエリで、非常に単純なWHERE 節で詳細を抽出している。この場合、Snowflakeは最初にFROM 句を実行し、Snowflakeにどのテーブルからデータを読み取るかを指示する。次に、WHERE 節が来る。これは、Snowflake にどのデータをフィルタリングするか、言い換えれば、どのマイクロパーティション分割を読み取り、どのマイクロパーティション分割をスキップするかを指示する。

GROUP BYHAVING 節に移ろう。GROUP BY は、フィルタリングされたデータに対してWHERE 節の後に実行され、データの集約、フィルタリングに使用される。 HAVING 節は、GROUP BY 節の結果をフィルタリングするのに役立つ。何千人もの従業員、その部署、100ドルから5,000ドルまでの給料のレコードを持つEmployees という名前のテーブルがあるとしよう。

この2つのクエリを表3-1で見てみよう。

表3-1. 実行順序 (WHEREHAVING)
クエリ1 クエリ2
SELECT DEPARTMENT, 
	SUM(SALARY) AS 
	TOTAL_SALARY
FROM EMPLOYEES
GROUP BY DEPARTMENT 
HAVING TOTAL_SALARY < 1000
SELECT DEPARTMENT, 
	SUM(SALARY) AS
	TOTAL_SALARY
FROM EMPLOYEES
WHERE SALARY < 1000 
GROUP BY DEPARTMENT
このクエリは、employeesテーブルを読み取り、部門ごとにグループ化し、その部門のすべての給与の合計を取り、最後に、その部門のすべての従業員の給与の合計が1000未満である部門をフィルタリングする。このクエリは、"給与合計が1000未満の部門を教えてください "というリクエストに対する答えである。 このクエリは、employeesテーブルを読み取り、給与が1000未満の従業員をフィルタリングし、部署ごとにグループ化し、その部署に残っている給与の合計を取る。このクエリは、"部署ごとの給与が1000未満の従業員の給与合計を教えてください ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

PythonによるWebスクレイピング 第2版

PythonによるWebスクレイピング 第2版

Ryan Mitchell, 黒川 利明, 嶋田 健志
Advanced Snowflake

Advanced Snowflake

Muhammad Fasih Ullah
カオスエンジニアリング ―回復力のあるシステムの実践

カオスエンジニアリング ―回復力のあるシステムの実践

Casey Rosenthal, Nora Jones, 堀 明子, 松浦 隼人

Publisher Resources

ISBN: 9798341670976