我需要找到一种方法来正确分组。我有一个结果集,返回事件数字,实际上是数据类型字符串,已完成修订。我只需要输入最后一个修订号的分组。如下。
INC-101
INC-101
INC-101A1
INC-101A1
INC-101A2
INC-101A2
JNC-101
JNC-101
JNC-101S1
JNC-101S1
我怎么才能看到最高版本号,如下所示:
INC-101A2
INC-101A2
JNC-101S1
JNC-101S1
答案 0 :(得分:2)
您可以将GROUP BY
与SUBSTRING
一起使用,例如:
SELECT MAX(incident_no)
FROM incidents
GROUP BY SUBSTRING(incident_no, 1, 7);
这是 SQL Fiddle 。
<强>更新强>
如果您想要所有属于最新修订号的行,那么您可以将上述查询用作子查询,例如:
SELECT *
FROM incidents
WHERE incident_no IN (
SELECT MAX(incident_no)
FROM incidents
GROUP BY SUBSTRING(incident_no, 1, 7)
);
答案 1 :(得分:0)
你可以将max
- 函数与group by一起用于&#34; base&#34;事件编号。不确定,如果它完全按预期工作,因为我不知道使用的数字系统。但也许通过一些调整,您可以轻松获得所需的结果:
select max(incnumber)
from incidents
group by left(incnumber,7)