+ Start a Discussion

How to display number of record entries per user

I have a visualforce page that acts as a leaderboard for users. I would like the ability to show how many submissions a user has for the Idea sObject and how many times he/she has voted on any idea. How would I develop this in my custom controller?

You should be able to do a Aggregate query to obtain this.  If you want to get the number of votes a specific user has given:
select count(ParentId)
from Vote
where CreatedById = 'xxxxxxx'
     Parent.Type = 'yyyyyyyy'

where 'xxxxxx' is the user's id (in your controller you can use Userinfo.getUserId() to get the current user's Id and where 'yyyyyyyy' is the RecordTypeId of the Ideas you want to count

If you want to do more of a leaderboard style thing you could get the top 10 most voting users
select count(ParentId),
from Vote
where Parent.Type = 'yyyyyyyy'
group by CreatedById
order by count(ParentId)
desc limit 10

where 'yyyyyyyy' is the RecordTypeId of the Ideas you want to count

Unfortunately there is an Implementation restriction on querying the Vote object that it must be filtered by either ParentId, Parent.Type or Id
​Thanks for the feedback!

Where would I find the RecordTypeID of the ideas I want to count? 
You can query your record types with
select Id,
from RecordType
where IsActive = true

I think you may have to use Parent.RecordTypeId instead of Type, but I may be wrong.  I've never used the Idea or Vote object