Я пытаюсь создать агрегированную функцию MEDIAN () в MySQL, такую как MIN (), MAX (), AVG (), которая принимает на вход имя столбца или строку, в которой есть объединенные значения нужного столбца.
У меня проблемы с пониманием ограничений пользовательских функций MySQL, и было бы очень полезно, если бы некоторые могли помочь мне узнать, как это делается.
Пример:
MySQLтаблица имеет 2 столбца (ID, номер)
+----+-----+
| id | num |
+----+-----+
| 1 | 5 |
| 1 | 6 |
| 1 | 7 |
| 2 | 1 |
| 2 | 3 |
| 2 | 5 |
+----+-----+
SELECT id, MEDIAN(num) as median
FROM table
GROUP BY id;
ИЛИ
SELECT id, MEDIAN(GROUP_CONCAT(num SEPARATOR ',') as median
FROM table
GROUP BY id;
Ожидаемый результат:
+----+--------+
| id | median |
+----+--------+
| 1 | 6 |
| 2 | 3 |
+----+--------+