Group By最大修订字符串

时间:2017-06-16 22:07:19

标签: mysql sql sql-server tsql

我需要找到一种方法来正确分组。我有一个结果集,返回事件数字,实际上是数据类型字符串,已完成修订。我只需要输入最后一个修订号的分组。如下。

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

2 个答案:

答案 0 :(得分:2)

您可以将GROUP BYSUBSTRING一起使用,例如:

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)