@zxcursed

Как сгруппировать по содержимому запроса?

Есть запрос:
SELECT count(*) AS counts FROM tbl WHERE val LIKE '%111%' OR val LIKE '%222%';
Как сгруппировать результат данного запроса, чтобы на выходе получилось:
query | counts
%111% | 22
%222% | 33
В столбце 'query' запрос из LIKE, а в 'counts' результаты по нему
  • Вопрос задан
  • 52 просмотра
Решения вопроса 1
BojackHorseman
@BojackHorseman Куратор тега MySQL
...в творческом отпуске...
...
SUM(val LIKE '%111%'),
SUM(val LIKE '%222%')
...
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
rozhnev
@rozhnev Куратор тега MySQL
Fullstack programmer, DBA, медленно, дорого
SELECT query, COUNT(*) cont FROM (
  SELECT 
	  CASE 
		  WHEN val LIKE '%111%' THEN '%111%'
		  WHEN val LIKE '%222%' THEN '%222%'
		  ELSE 'other'
	  END query
  FROM tbl 
  WHERE val LIKE '%111%' OR val LIKE '%222%'
) tbl GROUP BY query;


SQL GROUP BY Fiddle

Result:
+=======+======+
| query | cont |
+=======+======+
| %111% | 2    |
+-------+------+
| %222% | 1    |
+-------+------+
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы