SQL Имея столбцы, которых нет в SELECT

У меня есть таблица с 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 в моем представлении? Я знаю, что, вероятно, могу сделать это с помощью внутренних запросов, но я бы не хотел этого делать по соображениям производительности.

Ваша помощь очень ценится!

8
задан Rapsey 14 July 2011 в 11:43
поделиться