这是我编写的虚拟测试(我忘了id)。我想写一个查询,它将在每个组ID中返回最高的grp#。除非我删除最后一行,否则在这种情况下是最后两行。然后它就是最后一排和第二排。无论如何我不知道如何使用子查询编写查询w / o已经有一段时间了,我忘了如何编写子查询(这是一件好事吗?)
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 |
+------+------+------+
答案 0 :(得分:2)
SELECT gid, MAX(grp) FROM example GROUP BY gid
答案 1 :(得分:2)
select gid,max(grp)as 'higest_grp' from example group by gid
答案 2 :(得分:0)
我相信这是为每行检索正确data
的正确方法。
SELECT `gid`, `grp`, `data` FROM `example`
WHERE `grp` IN (SELECT MAX(t2.`grp`) FROM `example` t2 GROUP BY `gid`)
GROUP BY `gid`