У меня есть запрос, где мне нужно сгруппировать по подстроке строки переменной длины. Строка является путем в URL. Например, следующее должно быть сгруппировано вместе ...
Где 1 может быть любым целым числом до 30. Я бы хотел, чтобы все они свернулись в / health / pushups / в функции GROUP BY.
Есть идеи?
Заранее спасибо!
2 варианта:
WHERE ( url LIKE '%health%' and url LIKE '%pushups%' )
или с REGEXP_LIKE
WHERE REGEXP_LIKE(url,'^+health/pushups')>0
Хммм.,,Это сложно из-за / в начале.Это должно работать:
/
select (case when url like '/%' then substring_index(url, '/', 3) else concat('/', substring_index_url, '/', 2)) end) as grp, count(*) from t group by grp;