0
 select a.col_name1,max(b.col_name2) from table_a , table_b b where
 a.candidate_id = 900 and a.col_name1 = b.col_name1 and a.col_name2=
  302885 group by b.candidate_id;

これはクエリであり、私にとっては正常に機能しています

しかし、 max(b.col_name2) を使用すると、このエラーが発生します1111 invalid use of group function

select a.col_name1,max(b.col_name2) from table_a , table_b b where
a.candidate_id = 900 and a.col_name1 = b.col_name1 and a.col_name2=
max(b.col_name2)group by b.candidate_id;

max(b.col_name2)値の使用方法

助けてください。よろしくお願いします..

4

4 に答える 4

0

Group By を使用する場合、Having 句でグループの where 句を指定する必要があります。

select a.col_name1,
  max(b.col_name2) 
from table_a , table_b b 
where a.candidate_id = 900 and 
  a.col_name1 = b.col_name1 
group by b.candidate_id
having a.col_name2 = max(b.col_name2)
于 2013-06-18T10:05:37.540 に答える
0

また、常に明示的な JOIN 構文を使用してください...

SELECT a.col_name1
     , MAX(b.col_name2) 
  FROM table_a a
  JOIN table_b b 
    ON b.col_name1 = a.col_name1 
 WHERE a.candidate_id = 900 
 GROUP 
    BY b.candidate_id
HAVING a.col_name2 = MAX(b.col_name2);
于 2013-06-18T11:14:21.533 に答える
0

これを試して

   select a.col_name1,max(b.col_name2) 
   from table_a , table_b b 
   where a.candidate_id = 900 
   and a.col_name1 = b.col_name1 
   group by b.candidate_id 
   having a.col_name2= max(b.col_name2)

また

   select a.col_name1,max(b.col_name2) 
   from table_a , table_b b 
   where a.candidate_id = 900 
   and a.col_name1 = b.col_name1 
   and  a.col_name2 in ( select max(col_name2) from table_b)
   group by b.candidate_id 
于 2013-06-18T10:01:55.870 に答える
0

クエリが実行されたからといって、それが「うまく機能する」とは限りません。

Mysql には奇妙なグループ化機能があります。

これを試して:

select
  a.col_name1,
  max(b.col_name2)
from table_a
join table_b b
  on a.col_name1 = b.col_name1
where a.candidate_id = 900
and a.col_name1 = b.col_name1
and a.col_name2 = 302885
group by a.col_name1;

修正/改善:

  • フォーマット
  • 結合構文
  • 列ごとにグループ化
于 2013-06-18T10:09:41.113 に答える