0

私はこのテーブルを持っています:

A,B,C
2,5,6
2,8,5
3,4,7
3,4,8

結果をAでグループ化し、最大C値を選択します。それに対するクエリは次のようなものです

SELECT A, MAX(C) FROM table GROUP BY A

私の質問は、max(c)値の隣にあるB値を取得するにはどうすればよいですか?これは同じクエリで実行できますか、それとも結合クエリが必要で、最初のクエリを実行した後にBフィールドを探す必要がありますか?

ありがとう!

4

4 に答える 4

1

これを試して:

select A,(select B from Table1 t1 where t1.A=t2.A and T1.C=T2.C) B ,MAX(c) C  
from Table1 T2 group by A;

フィドルデモ

于 2012-11-26T11:53:56.423 に答える
1
select * 
from table1 t
join 
   (SELECT A, MAX(C) as C 
    FROM table1 GROUP BY A )a
on t.A=a.A
and t.C=a.C
于 2012-11-26T11:48:26.133 に答える
1

これは、グループごとの最大値として知られています。それを取得するには、結果をテーブルに再度結合する必要があります。

SELECT * FROM table NATURAL JOIN (
  SELECT A, MAX(C) AS C FROM table GROUP BY A
) t
于 2012-11-26T11:49:07.320 に答える
1

選択した列に追加できますが、グループ化する必要もあります。それ以外の場合、結果は不確定です。

SELECT A, B, MAX(C)
FROM table
GROUP BY A, B
于 2012-11-26T11:49:46.010 に答える