2016-03-16 5 views
0

Это вопрос с несколькими арендаторами. Я хочу проверить, сколько пользователей подключено к каждой базе данных.Подсчет уникальных активных пользователей за каждый день Postgresql

Этот запрос является ближайшим я пришел:

SELECT datname, count(usesysid) as users 
FROM pg_stat_activity 
GROUP BY 1 

Но, кажется, не корректно, так как Postgres БД имеет 2 пользователей и только 1 регистрируется в

Есть ли другой способ. выяснить это?

Кажется, что каждый запрос в PGAdmin использует другой процесс и действует как другой пользователь. Так что я могу рассчитывать процессы, но не «активных пользователей»:

enter image description here

+0

usesysid одинаковы для всех пользователей postgres. В прошлый раз я проверил, что это было 4 postgres with usesysid 10 – sibert

+0

10; «postgres» 10; «postgres» (число «postgres» отличается от сеанса к сеансу) – sibert

ответ

0

Если я правильно понимаю ваш вопрос, который «Количество уникальных активных пользователей в базу данных Postgresql», я бы запрос

SELECT datname, usename, COUNT(*) 
    FROM pg_stat_activity 
    GROUP BY datname, usename; 
+0

Все пользователи одной и той же компании используют одну и ту же роль (имя пользователя) поэтому он не говорит мне, сколько пользователей в каждой зарегистрированной компании. – sibert

+0

Итак, если все пользователи одной и той же компании используют одно и то же 'имя пользователя ', вам нужно добавить размер' usename' в агрегацию. Я обновил запрос, чтобы отразить это. Дайте мне знать, если это ответит на ваш вопрос. –

+0

Это дает тот же результат, что и мой первоначальный запрос. Я не могу понять, почему есть 2 пользователя postgres, потому что я единственный администратор, зарегистрированный как postgres. – sibert