我希望得到最高值,但要在同一张桌子上按另一个字段分组 例如:
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
答案 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