Невозможно угадать, как получить экземпляр Doctrine из информации запроса для параметра

Мое решение, представленное ниже, работает только в одном запросе без создания таблицы, переменной или даже подзапроса. Кроме того, он позволяет вам получать медианную для каждой группы запросы по группам (это то, что мне нужно!):

SELECT `columnA`, 
SUBSTRING_INDEX(SUBSTRING_INDEX(GROUP_CONCAT(`columnB` ORDER BY `columnB`), ',', CEILING((COUNT(`columnB`)/2))), ',', -1) medianOfColumnB
FROM `tableC`
-- some where clause if you want
GROUP BY `columnA`;

Это работает из-за умного использования group_concat и substring_index.

Но, чтобы разрешить большую группу group_concat, вы должны установить для group_concat_max_len более высокое значение (по умолчанию 1024 символа). Вы можете установить его так (для текущего сеанса sql):

SET SESSION group_concat_max_len = 10000; 
-- up to 4294967295 in 32-bits platform.

Дополнительная информация для group_concat_max_len: https://dev.mysql.com/doc/refman/5.1/en/server -системы-variables.html # sysvar_group_concat_max_len

0
задан Vadim Kotov 19 March 2019 в 08:05
поделиться