Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.05.2017, 16:34   #1
Rose16
Пользователь
 
Регистрация: 09.12.2016
Сообщений: 14
По умолчанию MySQL

Помогите пожалуйста! Найдите среднее количество сообщений от пользователей (user) всем серверам в логе.
не могу понять как сделать. Код не верный.
SELECT COUNT(`logmessages`.`id`),(select COUNT(`servers`.`name`) from `servers`),(select COUNT(`users`.`name`) from `users`),COUNT(`logmessages`.`id`)/(select COUNT(`servers`.`name`) from `servers`)
from `logmessages`,`users`,`servers` where `logmessages`.`userid`=`users`.`id` and `logmessages`.`serverid`=`servers`. `id`
group by `logmessages`.`userid`
есть допустим 10 user, он отправляет сообщение серверу 1(2 сбщ), серверу 2(1 сбщ), серверу 3(3 сбщ). Общая сумма сбщ=6, делим на кол-во серверов =3. в запросе должно вывести 3. Безымянный.jpg
Rose16 вне форума Ответить с цитированием
Старый 18.05.2017, 16:41   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

AVG вам в помощь
Код:
SELECT AVG(*) FROM 'logmessages`GROUP BY `userid`
ADSoft вне форума Ответить с цитированием
Старый 18.05.2017, 20:42   #3
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

Код:
select count(*) x, servers.id, userd  -- считаем КОЛИЧЕСТВО сообщений по каждому пользователю для КАЖДОГО сервера.
from logmessages
right join servers on servers.id =logmessages.serverid --"добавим строку" для всех серверов ДАЖЕ если на нем нет сообщений от пользователя 
group by servers.id, userid
а теперь считаем среднее для всего этого
Код:
select userid, avg(x) 
from ( select count(*) x, servers.id, userd
       from logmessages
       right join servers on servers.id =logmessages.serverid
       group by servers.id, userid
     ) as st
group by userid
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 18.05.2017, 23:41   #4
Rose16
Пользователь
 
Регистрация: 09.12.2016
Сообщений: 14
По умолчанию

спасибо большое!!! в один запрос не получится никак вывести? чтобы и ср выводил и кол-во сбщ users
Rose16 вне форума Ответить с цитированием
Старый 19.05.2017, 09:17   #5
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

Код:
select userid, avg(x), sum(x),  count(distinct id)
...
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 19.05.2017 в 09:32.
evg_m вне форума Ответить с цитированием
Старый 19.05.2017, 10:34   #6
Rose16
Пользователь
 
Регистрация: 09.12.2016
Сообщений: 14
По умолчанию

Огромное спасибо!))))
Rose16 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Windows+Apache+PHP+MySQL: не работает расширение MySQL. Пепел Феникса Софт 10 15.04.2012 14:10
Mysql+Delphi 2010 Использую libmysql.dll + mysql.pas не могу инф сохранить в базу kGpROGER БД в Delphi 7 30.12.2010 18:27
есть адреси в mysql нужно поиска с AJAX for mysql orter PHP 1 24.09.2010 10:24
обновление в блоге - Работа с MySQL в С++ с использованием библиотеки mysql++ Pblog Обсуждение статей 0 16.08.2009 16:00