0

このオラクルエラーが発生しました:

ORA-00979: not a GROUP BY expression
00979. 00000 -  "not a GROUP BY expression"
*Cause:    
*Action:
Error at Line: 1 Column: 17

以下のクエリを実行したとき:

SELECT M.EMAIL, M.FNAME, M.LNAME, COUNT(*) 
FROM MEMBER M, FRIENDSHIP F  
WHERE (M.EMAIL = F.USER1 OR M.EMAIL = F.USER2 ) AND 
        F.TYPE = 'Family'
GROUP BY M.EMAIL

M.EMAIL句以外のすべてのフィールドを削除するSELECTと機能しますが、別のフィールドを追加するとすぐにM.FNAME同じエラーが発生します!

どうしたの?

4

2 に答える 2

2

集計されていないすべての列を に入れSELECTますGROUP BYEMAILまた、これにより、同じ行に複数のFNAMEとがあるすべての行が削除されることに注意してLNameください。email-Fname-Lname の組み合わせごとに 1 つの行しかありません。

SELECT M.EMAIL, M.FNAME, M.LNAME, COUNT(*) 
FROM MEMBER M, FRIENDSHIP F  
WHERE (M.EMAIL = F.USER1 OR M.EMAIL = F.USER2 ) AND 
        F.TYPE = 'Family'
GROUP BY M.EMAIL, M.FNAME, M.LNAME
于 2013-09-13T04:28:23.403 に答える
1

以下のクエリを試してください。問題が解決します:)

  SELECT M.EMAIL, M.FNAME, M.LNAME, COUNT(*) 
  FROM MEMBER M, FRIENDSHIP F  
  WHERE (M.EMAIL = F.USER1 OR M.EMAIL = F.USER2 ) AND 
    F.TYPE = 'Family'
  GROUP BY M.EMAIL,M.FNAME,M.LNAME

注: Select 句で集計関数を使用する場合、集計関数の値列を除くすべての列名を関数ごとにグループ化する必要があります。

于 2013-09-13T04:34:45.933 に答える