我要想办法把它们适当地分组。我有一个结果集,它返回的事件数实际上是数据类型字符串,已经完成了修改。我只需要输入最后一个修订号的分组。例如下面。

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

最佳答案

您可以将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)
);

08-26 23:39