1. ホーム
  2. Database

MySQLデータベースのクエリ機能を使用する際に、グループ関数の使用が無効である問題の解決方法

2022-02-08 01:06:10

<スパン        MySQLデータベースを使用していると、しばしばエラーに遭遇します。Invalid use of group function, これは、クエリの結果が参照されていない、または結果を受け取る変数のデータ型と一致しない場合、グループ関数が正しく使用されていないことを意味します。したがって、このエラーが発生したときは、まず、この2点に問題がないかどうか考えてみてください。

<スパン コードの例

-- 元のコード
デリミタ $
CREATE PROCEDURE test_1(INOUT n DOUBLE)
BEGIN
    SELECT cou.couName,AVG(s.score)です。
        FROM course cou,score s
            WHERE cou.couName='masql' AND cou.examTime='2014-04-04' AND s.courseId=cou.id.WHERE couName='masql' AND cou.examTime='2014-04-04' AND s.courseId=cou.id;
    SELECT n;
    SET n=AVG(s.score)とする。   
END $.
SET @n=0.00;
CALL test_1(@n); -- クエリが未知の結果を参照しているため、プロンプトが表示されます。 グループ関数の使用は無効です。
SELECT @n;

<スパン
-- 修正コード

デリミタ $
CREATE PROCEDURE test_2(INOUT n DOUBLE)
BEGIN
    SELECT cou.couName,AVG(s.score)です。
        FROM course cou,score s
            WHERE cou.couName='masql' AND cou.examTime='2014-04-04' AND s.courseId=cou.id.WHERE couName='masql' AND cou.examTime='2014-04-04' AND s.courseId=cou.id;
    SELECT n;
    SET n=(SELECT AVG(s.score))
            FROM course cou,score s
                WHERE cou.couName='masql' AND cou.examTime='2014-04-04' AND s.courseId=cou.id );
END $.
SET @n=0.00;
CALL test_2(@n); -- 結果正常
SELECT @n;