--- title: "GROUP BYとORDER BY" url: https://docs.catalyst.zoho.com/ja/cloud-scale/help/zcql/groupby-orderby/ description: "ZCQLは、使い慣れたクエリ言語をモデルにしたCatalyst独自のクエリ言語であり、アプリのデータベースを効率的にクエリするために使用できます" last_updated: 2026-02-23T12:39:41Z service: Cloud Scale type: general --- ### GROUP BY文 `GROUP BY`文は、検索クエリ結果で取得されたレコードを1つ以上のカラムでグループ化するために使用されます。`GROUP BY`は、同一のデータをまとめてグループ化し、順番に表示できるようにします。カラムに重複する値がある場合、`GROUP BY`文は重複をまとめて表示します。レコードは他のカラムに基づいて順序付けられます。 `GROUP BY`文は`SELECT`文に関連付けられ、[ZCQL関数](https://docs.catalyst.zoho.com/ja/cloud-scale/help/zcql/zcql-functions/)と一緒に使用されることが多いです。クエリの末尾に使用され、`JOIN`文を満たし、`WHERE`条件に従う必要があります。 `SELECT`文と一緒に`GROUP BY`文を使用する基本構文は以下のとおりです: ```sql SELECT column_name(s) FROM parent_table_name GROUP BY column_name(s) ``` **例**: _Theaters_テーブルから劇場の場所でグループ化された劇場とその場所のリストを表示するには、以下のクエリを実行します: ```sql SELECT TheaterName, Location FROM Theaters GROUP BY Location ``` 以下の出力が生成されます:
TheaterName Location
Cosmos Theater Albany
FunTime Cinemas Buffalo
The Express Cinemas New York City
ANC Cinemas Rochester
#### BINARYOF()関数 `BINARYOF()`関数は`GROUP BY`文でのみ使用できます。この関数は、大文字と小文字を区別せず、テーブルのカラム内のすべての値を考慮した出力を生成する場合に使用できます。 `BINARYOF()`関数は、**VarChar**または**Text**データ型のカラムにのみ使用できます。 たとえば、以下の*Zylker_EMP*テーブルを考えてみましょう:
Names
AMELIA BURROWS
amelia burrows
amelia Burrows
Amelia Burrows
`BINARYOF()`の機能とその出力例を示すZCQL文の例を以下に示します: ```sql SELECT Names FROM Zylker_EMP GROUP BY BINARYOF(Names) ```
Zylker_EMP.Names
AMELIA BURROWS
amelia burrows
amelia Burrows
Amelia Burrows
> **注意:** * この機能は**ZCQL V2**でのみ利用可能です。 * **2024年12月1日**より、すべての[Org](https://docs.catalyst.zoho.com/ja/getting-started/catalyst-organizations/)の[開発環境](https://docs.catalyst.zoho.com/ja/deployment-and-billing/environments/development-environment/)にある現在のすべてのプロジェクトは、自動的に**ZCQL V2 Parser**にマッピングされます。 * **2025年4月1日**より、*開発環境*で**ZCQL V2 Parser**にすでにマッピングされているすべての*Org*のすべてのプロジェクトは、プロジェクトの本番環境が有効化された場合、[本番環境](https://docs.catalyst.zoho.com/ja/deployment-and-billing/environments/production-environment/)で自動的に**ZCQL V2 Parser**にマッピングされます。 ### ORDER BY文 `ORDER BY`文は、検索クエリ結果で取得されたレコードを1つ以上のカラムに基づいて昇順または降順にソートするために使用されます。`ORDER BY`文がテキストデータのソートに使用される場合、レコードはアルファベット順にソートされます。 `GROUP BY`文と同様に、`ORDER BY`文は`SELECT`文に関連付けられ、`GROUP BY`文の後に使用されることが多いです。クエリの末尾、`JOIN`句文やWHERE条件(存在する場合)の後、`LIMIT`句の前に使用されます。`ORDER BY`文は`JOIN`文を満たし、`WHERE`条件に従う必要があります。 > **注意**: `ORDER BY`文がGROUP BY文に続く場合、`ORDER BY`文が優先され、結果はまず`ORDER BY`文に基づいて順序付けられ、次に`GROUP BY`文に基づいてグループ化されます。 * カラムに重複する値がある場合、`ORDER BY`文は重複をまとめて表示します。レコードは他のカラムに基づいて順序付けられます。 * [ZCQL関数](https://docs.catalyst.zoho.com/ja/cloud-scale/help/zcql/zcql-functions/)も`ORDER BY`文と一緒に使用できます。 > **注意:** `ORDER BY`文のすべての機能を活用するには、コードベースを**ZCQL V1**から**ZCQL V2**に移行することをお勧めします。**ZCQL V2**の強化と機能の詳細については、この[ヘルプドキュメント](https://docs.catalyst.zoho.com/ja/cloud-scale/help/zcql/syntax-exceptions/)をご参照ください `SELECT`文と一緒に`ORDER BY`文を使用する基本構文は以下のとおりです: ```sql SELECT column_name(s) FROM parent_table_name ORDER BY column_name(s) [ASC | DESC] ``` > **注意:** * デフォルトでは、`ORDER BY`文はキーワード'`ASC`'を使用せずにレコードを昇順にソートします。レコードを降順にソートするには、キーワード'`DESC`'を使用する必要があります。 * `ORDER BY`句を使用するすべてのカラムで、`ASC`と`DESC`の機能を適用できるようになりました。個別のカラムに対しても`ASC`と`DESC`を適用できます。 **例**: Pricingテーブルから各映画のチケット価格を降順で表示するには、_Movies_テーブルから以下のクエリを実行します: ```sql SELECT Movies.MovieName, Pricing.Price FROM Movies INNER JOIN Pricing ON Movies.MovieID = Pricing.MovieID ORDER BY Pricing.Price DESC ``` 以下の出力が生成されます:
MovieName Price
Hotel Transylvania 3: Summer Vacation 11.50
The First Purge 9.20
Ant-Man and the Wasp 8.64
Skyscraper 7.44