1

これが私が作ったダミーテストです(おっと私はIDを忘れました)。各グループIDで最大のgrp#を返すクエリを1つ作成したいと思います。この場合、最後の行を削除しない限り、これは最後の2行です。次に、それは最後の行と2番目の行になります。とにかく、サブクエリを使用せずにクエリを作成する方法がわかりません。しばらくの間、サブクエリの作成方法を忘れてしまいました(それは良いことですか?)

CREATE TABLE example ( gid INT, grp INT, data VARCHAR(100) );
--
mysql> select * from example;
+------+------+------+
| gid  | grp  | data |
+------+------+------+
|    1 |    1 | a    |
|    1 |    2 | a    |
|    2 |    1 | a    |
|    2 |    2 | a    |
|    1 |    5 | a    |
+------+------+------+
4

3 に答える 3

2
SELECT gid, MAX(grp) FROM example GROUP BY gid
于 2012-09-04T08:19:20.080 に答える
2
select gid,max(grp)as 'higest_grp' from example group by gid
于 2012-09-04T08:21:14.370 に答える
0

dataこれが各行の正しいものを取得する正しい方法だと思います。

SELECT `gid`, `grp`, `data` FROM `example` 
WHERE `grp` IN (SELECT MAX(t2.`grp`) FROM `example` t2 GROUP BY `gid`) 
GROUP BY `gid`
于 2012-09-04T08:55:09.733 に答える