Следующий оператор SQL возвращает имя пользователя, IP-адрес, продолжительность, объем трафика и последний визит.
SELECT username, SUBSTRING_INDEX( callingstationid, '=', 1 ) as IP,
SUM(acctsessiontime) as `duration`, count(username) as Count,
(SUM(`acctinputoctets`)+SUM(`acctoutputoctets`))/1000/1000/1000 as GBytes,
MAX(acctstoptime) as `last visit`
FROM radacct
GROUP BY username
Я хотел быобъединить его с таблицей стран и сгруппировать по странам, чтобы я знал, сколько трафика использовала каждая страна и когда был последний визит из этой страны.
Я не могу получить право на объединение:
SELECT c.country,
round(GBytes, 2),
Count,
duration as `Total Time Spent`,
`last visit`
FROM (
SELECT username,
SUBSTRING_INDEX( callingstationid, '=', 1 ) as IP,
SUM(acctsessiontime) as `duration`, count(username) as Count,
(SUM(`acctinputoctets`)+SUM(`acctoutputoctets`))/1000/1000/1000 as GBytes,
MAX(acctstoptime) as `last visit`
FROM radacct
GROUP BY username
) filtered_radacct
JOIN u_cache_db.`global_ip` c ON c.ip = filtered_radacct.IP
GROUP BY c.country
order by GBytes DESC;
Я знаю, что эти цифры не могут быть правильными.