The above query is kind of redundant. Presumably
user_id is constrained to be unique in the
users table, so rather than counting and grouping by
user_id (when your where clause constrains us to
user_id = 3) you could do:
select count(*) from users where user_id=3
and Postgres will return one row (the value being either 0 or 1). The row only "disappears" when you add the
group by clause.