आप लगभग अपनी क्वेरी के साथ हैं। बस filter
का उपयोग करें वर्तमान उपयोगकर्ता की मतगणना प्राप्त करने के लिए खंड
SELECT
post.postID as postID,
post.title as title,
post.author as author,
post.created as created,
COALESCE(sum(votes.vote), 0) as voteCount,
COALESCE(sum(votes.vote) filter (where votes.username= 'username'), 0) as userVote -- in '' just provide username for current login user
FROM post
LEFT JOIN votes ON post.postID = votes.postID
GROUP BY 1,2,3,4
ORDER BY 5 DESC
दूसरा तरीका यह है कि नीचे की तरह एक और लेफ्ट जॉइन का उपयोग करें:
SELECT
p.postID as postID,
p.title as title,
p.author as author,
p.created as created,
COALESCE(sum(v1.vote), 0) as voteCount,
COALESCE(v2.vote , 0) as userVote -- in '' just provide username for current login user
FROM post p
LEFT JOIN votes v1 ON p.postID = v1.postID
LEFT JOIN votes v2 on p.postID = v2.postID and v2.username='username'
GROUP BY 1,2,3,4,v2.vote
ORDER BY 5 DESC