SQL の「単一グループのグループ関数ではありません」エラーについて
SELECT でグループ関数と個々の列式を組み合わせようとした場合指定されたクエリのようなステートメント:
SELECT SSN, MAX(SUM(TIME)) FROM downloads GROUP BY SSN
「単一グループではないグループ」が発生する可能性があります。関数」エラー。これは、SUM(TIME) グループ関数がグループ (SSN) ごとに単一の値を計算するため、個々の列式 SSN と互換性がなくなるために発生します。
このエラーを解決するには、いくつかのオプションがあります。
個々の列を削除式:
SELECT MAX(SUM(TIME)) FROM downloads GROUP BY SSN
これは、対応する SSN を含まない最大合計値のみを返します。
すべての列に GROUP BY 句を追加します。式:
SELECT SSN, MAX(SUM(TIME)) FROM downloads GROUP BY SSN, TIME
これにより、結果が両方でグループ化されます。 SSN と TIME、MAX(SUM(TIME)) 関数を有効にします。
集計サブクエリを使用します:
SELECT SSN, SUM(TIME) FROM downloads GROUP BY SSN HAVING SUM(TIME) = (SELECT MAX(SUM(TIME)) FROM downloads GROUP BY SSN)
このサブクエリ最大合計値を計算し、各 SSN の SUM(TIME) がその値と一致する行のみを選択します。
特定の要件に応じて、これらのソリューションの 1 つを使用すると、「単一グループのグループ関数ではありません」というエラーが発生することなく、目的の結果を得ることができます。
以上がSQL での「単一グループのグループ関数ではありません」エラーを解決する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。