2010-12-13 2 views
0

Я пытаюсь объединить запрос MySQL, чтобы получить среднее количество уникальных устройств из таблицы, которая регистрирует адреса mac для каждого дня недели в данном месяце и году , Пока у меня есть, чтобы считать все устройства.MySQL Средний уникальный x для дня недели

SELECT DAYNAME(date_time) dow, 
DAYOFWEEK(date_time) day_num, 
COUNT(DISTINCT (mac)) as devices 
FROM detected_devices 
WHERE client_id = 11 
AND venue_id = 1 
AND EXTRACT(YEAR FROM date_time) = 2010 
AND EXTRACT(MONTH FROM date_time) = 12 
GROUP BY dow 
ORDER BY day_num 

Это дает мне общее количество устройств, но я тоже не могу использовать функцию AVG. Я пробовал эту строку вместо этого, но получаю ошибку # 1111 - Недопустимое использование групповой функции, когда я это делаю.

AVG(COUNT(DISTINCT (mac))) as devices 
+0

Вы пробовали 'AVG (DISTINCT (mac)) как устройства'? – jgauffin

+0

А, это действительно возвращает некоторые результаты, да, спасибо. Однако результаты кажутся немного странными .. например - понедельник = 19291096024292.0804 устройств! Если функция count выше возвращена 52 – ajay87

+0

Я предполагаю, что фактически получает среднее значение для каждого отдельного адреса mac, который даст такую ​​ценность. Мне нужен AVG из COUNT из MAC-адресов DISTINCT действительно – ajay87

ответ

0

Я думаю, это потому, что вы не можете GROUP BY псевдоним. Вместо этого попробуйте GROUP BY DAYOFWEEK(date_time).

+0

Спасибо за предложение, однако GROUP BY работает нормально. Это скорее часть AVG, которой нет. – ajay87