2014-11-29 3 views
0

Я использую asql package (sqlite) для анализа файлов журнала Apache. Я пытаюсь выполнить запрос, который возвращает [отчетливые IP-адрес] [Авторизованный пользователь] [число раз, когда пользователь аутентифицированные с этого IP-адрес]Использование sqlite для анализа журналов apache

запросом, который почти работает, но не включает в себя подсчет является:

SELECT DISTINCT(source), user FROM logs ORDER BY user 

, но как только добавить COUNT (*), я получаю одну строку. Если я попробую:

SELECT DISTINCT(source), user, COUNT(*) FROM logs GROUP BY user 

Я не вижу, где один пользователь прошел аутентификацию из нескольких IP-адресов. Я новичок в sql и не уверен, что мне нужно использовать псевдоним или вложенный запрос подсчета.

ответ

1

Вы хотите включить source в group by.

SELECT source, user, COUNT(*) 
FROM logs 
GROUP BY source, user ; 

DISTINCT не является функцией. В SQL есть пункт, который равен SELECT DISTINCT, а DISTINCT применяется ко всем столбцам, независимо от круглых скобок.

Смежные вопросы