共通の表式（CTE）は、選択されたステートメントから派生した一時的な結果セットであり、選択、挿入、更新、または削除ステートメントで使用できます。CTEは、複雑なクエリをより小さく、より管理しやすいピースに分解することにより、複雑なクエリを簡素化するために使用されます。

CTEの目的は、クエリを読み取り、書き込み、保守を容易にすることです。CTEは、単一の選択、挿入、更新、または削除ステートメントの範囲内でのみ表示されるサブクリーリーまたは一時的なビューと呼ばれると考えることができます。それらはデータベースにオブジェクトとして保存されておらず、データベースのパフォーマンスに影響を与えません。

CTEは、複数のレベルのデータ集約または計算を伴う複雑なクエリを扱う場合、または同じサブクエリがより大きなクエリの複数の場所で使用される場合に特に役立ちます。CTEを使用すると、サブクエリを一度書いてクエリ全体で再利用でき、クエリの全体的な構造をよりシンプルで理解しやすくすることができます。

いつCTEを使用するかという点では、あなたが望むとき、それらは良い選択です：

複雑なクエリをより小さく、より管理しやすいピースに分解します。
中間結果に意味のある名前を与えることにより、クエリの読みやすさと保守性を向上させます。
同じクエリ内で中間結果を再利用します。
複雑な計算を複数のステップに分解して、複雑な計算を簡素化します。
一般的に、その複雑さのために理解したり維持したりするのが難しくなっているクエリがある場合、CTEはクエリを簡素化して作業を容易にするための良いソリューションである可能性があります。
A Common Table Expression (CTE) is a temporary result set derived from a SELECT statement, and can be used in a SELECT, INSERT, UPDATE, or DELETE statement. CTEs are used to simplify complex queries by breaking them down into smaller, more manageable pieces.

The purpose of CTEs is to make queries easier to read, write and maintain. CTEs can be thought of as named subqueries or temporary views that are only visible within the scope of a single SELECT, INSERT, UPDATE, or DELETE statement. They are not stored as objects in the database and do not impact database performance.

CTEs are particularly useful when dealing with complex queries that involve multiple levels of data aggregation or calculations, or when the same subquery is used in multiple places in a larger query. Using a CTE allows you to write the subquery once and reuse it throughout the query, making the overall structure of the query simpler and easier to understand.

In terms of when to use CTEs, they are a good choice when you want to:

Break down a complex query into smaller, more manageable pieces.
Improve query readability and maintainability by giving meaningful names to intermediate results.
Reuse intermediate results within the same query.
Simplify complex calculations or aggregations by breaking them down into multiple steps.
In general, if you have a query that is becoming difficult to understand or maintain due to its complexity, a CTE may be a good solution to simplify the query and make it easier to work with.