我有一张包含以下记录的表
seqNo desc typeID statusID GroupSeqNo
1 test 20 30 16
2 test1 21 42 16
3 test2 20 43 17
4 test3 20 30 17
5 test4 21 42 18
6 test5 20 43 18
我正在使用其他几个表加入此表以获取typedescription和Statusdescription。
我的问题是如何只显示每个GroupSeqNo中的一条记录?如果你查看上面的样本记录,GroupSeqNo 16有3条记录,17条记录有2条,18条记录有2条。
以下是我正在使用的查询:
SELECT DISTINCT SS.GROUPSEQNO,SS.SEQNO,SS.DESC,T.DESC,S.DESC
FROM STATS SS, DDTYPES T, DDSTATUSES S
WHERE SS.TYPE_ID=T.TYPE_ID AND SS.STATUS_ID=S.STATUS_ID
答案 0 :(得分:1)
加入一个子查询,使用STATS
对GROUP BY
表进行分组,并根据您的需要选择MIN(seqNo)
或MAX(seqNo)
。
SELECT SS.GROUPSEQNO, SS.SEQNO, SS.DESC, T.DESC, S.DESC
FROM STATS SS
INNER JOIN DDTYPES T ON SS.TYPE_ID = T.TYPE_ID
INNER JOIN DDSTATUSES S SS.STATUS_ID = S.STATUS_ID
INNER JOIN (
SELECT MIN(seqNo) MinID
FROM STATS
GROUP BY GroupSeqNo
) g ON SS.seqNo = g.MinID