0

次のような構造の情報を持つテーブルがあります。

ID  Points  Name    School
1   123     James   A
2   534     Henry   B
3   56      Henry   B
4   153     Chris   B
5   95      Chris   B
6   83      Chris   B
7   421     James   A

そして、クエリから同じ名前の行を取得する必要がありますが、次のようにそれぞれの最高点のみを取得する必要があります。

ID  Points  Name    School
7   421     James   A
2   534     Henry   B
4   153     Chris   B

これをクエリでどのように達成できるかについてのアイデアはありますか? 私はこれを理解しようとしてあまりにも多くの時間を費やしました。

4

2 に答える 2

2
select name,school,max(points) from table group by name,school

これにより、名前/学校の組み合わせごとの最大ポイントが得られます。ID が必要な場合は、それ自体に結合します。

select table.* from table inner join
(select name,school,max(points) as points from table group by name,school) a
on a.name = table.name and a.school = b.school and a.points = table.points

編集: 申し訳ありませんが、これは SQL ソリューションです... MSACCESS タグを見ただけです。ロジックは正しいですが、アクセス構文に変換する必要があります。

編集して 2 番目のクエリを修正し、結合の列を見逃しました

于 2013-11-14T00:10:13.040 に答える