ホームページ > データベース > mysql チュートリアル > 「SELECT MAX(SUM(TIME)) FROM downloads GROUP BY SSN」で「単一グループのグループ関数ではありません」エラーが発生するのはなぜですか?

「SELECT MAX(SUM(TIME)) FROM downloads GROUP BY SSN」で「単一グループのグループ関数ではありません」エラーが発生するのはなぜですか?

Susan Sarandon
リリース: 2024-12-31 00:20:14
オリジナル
262 人が閲覧しました

Why Does

エラー: 「単一グループのグループ関数ではありません」の説明

SQL ステートメントの実行時、「SELECT MAX(SUM(TIME) ) FROM ダウンロード GROUP BY SSN」を実行すると、「単一グループのグループ関数ではありません」というエラーが発生します。このエラーは、最大式 MAX(SUM(TIME)) が、ダウンロード テーブル内の各社会保障番号 (SSN) の合計時間に作用するグループ関数であるために発生します。ただし、SELECT ステートメントに SSN を追加すると競合が発生します。

この競合が発生する理由を理解するには、次の説明を考慮してください。

  • SUM(TIME) 演算は、各 SSN の合計ダウンロード数。その結果、SSN ごとに 1 つの値が得られます。
  • MAX 関数はこれらの 1 つの値に対して動作し、ダウンロードの最大合計を返します。

SELECT リスト内の SSN 列の存在は、「単一グループのグループ関数」ルールに違反します。このルールでは、SELECT ステートメントに含まれるすべての列が GROUP BY 句の一部である必要があります。この場合、SSN は GROUP BY 句の一部ではないため、クエリは無効になります。

この問題を解決するには、次のアクションのいずれかを選択できます:

  • SELECT ステートメントから SSN を削除します: これにより、関連するダウンロードを識別せずに、ダウンロードの最大合計のみが返されます。 SSN.
  • SSN を GROUP BY 句に追加します: これにより、SSN とダウンロードの合計の両方で結果がグループ化され、SELECT リストに SSN を含めることができます。

以上が「SELECT MAX(SUM(TIME)) FROM downloads GROUP BY SSN」で「単一グループのグループ関数ではありません」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート