在单元格中按子串分组

时间:2016-10-06 07:27:31

标签: sql sql-server

我有一个包含列名称消息的表,此列包含固定格式的值,如下所示。

格式: -

QU FRASELH  .CPHBOSK LH/050840  COR MVT

我需要的是在第二个子字符串上计算基于group的消息数量(例如上面的FRASELH)

SELECT COUNT(*), ORIGIN_QUEUE
FROM info
where TIME_STAMP >='2016-10-05 00:00:00'and TIME_STAMP<= '2016-10-06 00:00:00'
group by (????)

提前致谢。

1 个答案:

答案 0 :(得分:0)

  

@EmilHolub固定格式表示消息列的每个单元格中的值具有相同的格式。例如,一个单元格有4个值(第一个子字符串有2个字符_space_2nd子字符串有6个字符空间,依此类推)。现在这个格式对于消息列下的所有单元格都是固定的。

鉴于它应该足够:

SELECT substr(ORIGIN_QUEUE,4,6) COUNT(*), 
FROM info
where TIME_STAMP >='2016-10-05 00:00:00'and TIME_STAMP<= '2016-10-06 00:00:00'
group by substr(ORIGIN_QUEUE,4,6)

它会根据ORIGIN_QUEUE字符串中的第4到第9个字符对值进行分组。