ホームページ >データベース >mysql チュートリアル >SQL クエリが「単一グループのグループ関数ではありません」というエラーを返すのはなぜですか?
SQL 関数「単一グループのグループ関数ではない」の説明
SQL では、MAX などのグループ関数を使用する場合、関数単一のデータ グループに適用する必要があります。これは、特定の列の最大値を見つけたい場合は、その列ごとにデータをグループ化する必要があることを意味します。
ただし、グループ化されていない式にグループ関数を適用しようとすると、 「単一グループのグループ関数ではありません」というエラーが表示されます。たとえば、顧客によるダウンロードの列を含む downloads というテーブルがあるとします。
SELECT MAX(SUM(TIME)) FROM downloads GROUP BY SSN
このクエリは、MAX 関数がデータのグループ (SSN によるダウンロード) に適用されるため有効です。 。ただし、次のように SSN 列を select ステートメントに追加しようとすると、
SELECT SSN, MAX(SUM(TIME)) FROM downloads GROUP BY SSN
SSN 列がGROUP BY 句。これは、SQL が SSN 列がどのデータ グループに属しているかを判断できないため、それに MAX 関数を適用できないことを意味します。
このエラーを解決するには、次の 3 つのオプションがあります:
SELECT SSN, MAX(SUM(TIME)) FROM downloads GROUP BY SSN, TIME
これにより、ダウンロードされた最大合計時間が表示されます。一意の SSN と時刻の組み合わせごとに。
以上がSQL クエリが「単一グループのグループ関数ではありません」というエラーを返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。