获取MySQL中具有最高值的行

时间:2010-12-10 08:44:30

标签: sql mysql

我希望得到最高值,但要在同一张桌子上按另一个字段分组 例如:

seqid + fileid + name

1  |    1 | n1
2  |    1 | n2
3  |    2 | n3
4  |    3 | n4
5  |    3 | n5

结果必须是

seqid + fileid + name

2  |    1 | n2
3  |    2 | n3
5  |    3 | n5

注意:所有字段必须显示为使用select * 我会感谢任何帮助.tnx

3 个答案:

答案 0 :(得分:2)

这样的东西
SELECT  t.*
FROM    Table t INNER JOIN
        (
            SELECT  fileid,
                    MAX(seqid) Maxseqid
            FROM    Table
            GROUP BY    fileid
        ) m ON  t.fileid = m.fileid
            AND t.seqid = m.Maxseqid

答案 1 :(得分:0)

SELECT seqid, fileid, name
FROM tbl JOIN (
    SELECT MAX(seqid) maxSeq, fileid fileid
    FROM tbl
    GROUP BY fileid
    ) tg ON tml.seqid = tg.maxSeq AND tbl.fileid = tg.fileid

答案 2 :(得分:0)

准确描述你需要的东西,提供更大的表格和结果表格,我也不明白你所有的最高价值是什么意思但是按照另一个字段分组,哪个列的最高值?

在你的结果中你提到4 | 3 | n5,为什么不是5 | 3 | n5如果你说最高?

好的,所以你编辑了它..

看起来很简单,比如

     select seqid, filed,name from table t1 join 
(select max(seqid) seqid from table group by fileid) as t2 on t2.seqid=t1.seqid

如果seqid是PK你不需要任何东西,但PK我不知道你为什么要加入2个字段而不只是PK