The database and project repository sizes are not stored in the ALM database. You will have to write code to get that information from the file systems of the systems where the files are stored. There are a variety of ways to get the information through code.
Your query for "recent activity" is flawed. What you are getting is whether or not a project's status is Active. If the project had been set to Inactive the value would be "N" and no users would be able to log into the project. This doesn't tell you anything about any activity happening in the project.
I recommend the following query instead. It will give you the date of the last connection by any means for each project.
select
PROJECTS.DOMAIN_NAME,
PROJECTS.PROJECT_NAME,
MAX(SESSIONS_HISTORY.START_TIME)
from PROJECTS
left outer join SESSIONS_HISTORY SESSIONS_HISTORY
on (PROJECTS.PROJECT_NAME=SESSIONS_HISTORY.PROJECT_NAME) AND (PROJECTS.DOMAIN_NAME=SESSIONS_HISTORY.DOMAIN_NAME)
GROUP by PROJECTS.DOMAIN_NAME, PROJECTS.PROJECT_NAME
Regarding the number of users query, where are you executing the query from? And what results do you get? You should be getting a list of Project IDs and User IDs. If what you want is the count of users in each project then you need this query.
select PROJECTS.PROJECT_ID, count(USERS_PROJECTS.USER_ID) from PROJECTS INNER JOIN USERS_PROJECTS ON USERS_PROJECTS.PROJECT_ID = PROJECTS.PROJECT_ID WHERE PR_IS_ACTIVE = 'Y' group by PROJECTS.PROJECT_ID