mysql, используя group_concat - PullRequest
0 голосов
/ 16 мая 2011

Может ли кто-нибудь дать мне знать, как ограничить количество значений в GROUP_CONCAT для каждой группы в MySQL?Я использую приведенный ниже запрос, который также создает более двух объединенных значений для каждой группы

  SELECT GROUP_CONCAT(remaining) 
    FROM `busroute` 
GROUP BY bus

Может кто-нибудь сообщить мне, как изменить вышеуказанный запрос для моей проблемы?

1 Ответ

0 голосов
/ 16 мая 2011

Я не знаю способа ограничить количество строк, которые сгруппированы, и я не думаю, что вы можете это сделать.

Но если вам нужно иметь только две строки, которые вы хотите сгруппировать, вы можете выполнить группировку и group_concat вручную и сгруппировать только две строки за раз:

SELECT t1.bus, concat(t1.remaining, ',', t2.remaining) 
FROM busroute as t1 
    JOIN busroute as t2 on t1.bus = t2.bus 
WHERE t1.id < t2.id

Здесь мы только что получили две копии таблицы busroute, а затем соединили их вместе по номеру шины, затем мы берем какое-то уникальное значение столбца в строке (это может быть любой столбец, если его столбец является уникальным атрибутом установить на него) и устранить совпадения ряда против себя. Я использовал «<», а не «<>», поскольку я хочу сопоставлять одну и ту же пару неуникальных строк только один раз.

...