У меня есть таблица с 3 столбцами:
userid mac_address count
Записи для одного пользователя могут выглядеть так:
57193 001122334455 42
57193 000C6ED211E6 15
57193 FFFFFFFFFFFF 2
Я хочу создать представление, которое отображает только те MAC, которые считаются «обычно используется» для этого пользователя. Например, я хочу отфильтровать MAC-адреса, которые используются <10% по сравнению с наиболее часто используемым MAC-адресом для этого пользователя. Кроме того, мне нужна 1 строка на пользователя. Этого легко добиться с помощью GROUP BY, HAVING & GROUP_CONCAT:
SELECT userid, GROUP_CONCAT(mac_address SEPARATOR ',') AS macs, count
FROM mactable
GROUP BY userid
HAVING count*10 >= MAX(count)
И действительно, результат выглядит следующим образом:
57193 001122334455,000C6ED211E6 42
Однако мне действительно не нужен столбец count в моем представлении. Но если я уберу его из оператора SELECT, я получу следующую ошибку:
#1054 - Unknown column 'count' in 'having clause'
Могу ли я выполнить эту операцию без необходимости иметь неприятный столбец count в моем представлении? Я знаю, что, вероятно, могу сделать это с помощью внутренних запросов, но я бы не хотел этого делать по соображениям производительности.
Ваша помощь очень ценится!