2016-10-06 1 views
0

У меня есть таблица с сообщением с именем столбца, и этот столбец содержит значения в фиксированном формате, как показано ниже.Группа по подстроке в ячейке

Формат: -

QU FRASELH .CPHBOSK LH/050840 COR MVT 

Что мне нужно не рассчитывать не сообщений, основанных на группе на 2 подстроки (например 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 (????) 

Спасибо заранее.

+0

Добавить образцы данных и ожидаемый результат. – jarlh

+0

Вы должны указать, на какой СУБД вы работаете (Oracle, MySQL, ...), а также что означает «фиксированный формат» в вашем случае? Какие значения фиксированы в примере? В зависимости от этого будет построено решение. –

+0

@a_horse_with_no_name db является сервером sql. – user853575

ответ

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) 

Это будет группировать значения на основе 4-го по 9-й символ в строке ORIGIN_QUEUE.

+0

благодарит вас. Он работал (просто это должна быть подстрока вместо substr). – user853575

+0

О, извините, я работаю в основном с базами данных Oracle, я не уверен обо всех различиях в языке кода. Рад, что это помогло. –