对不起,如果这是一个愚蠢的问题,我搜索了一下,找不到像我这样的例子的解决方案。
我有一个带有查询的小型照片共享应用程序,该查询输出用户的ID号,按照他们拥有的关注者数量排序。我想略微改变查询,以便如果用户拥有相同数量的关注者,他们将按照他们上传的照片数量进行排序。
我如何编辑查询?我所做的所有尝试都没有成功。
当前查询如下所示:
SELECT Users.ID, COUNT(User_Followers.FollowingUserID)
AS follower_count FROM Users
LEFT JOIN User_Followers ON Users.ID = User_Followers.FollowingUserID
GROUP BY Users.ID
ORDER BY follower_count DESC
User_Followers表如下所示:
ID UserID FollowingUserID DateFollowed
照片表看起来像这样:
ID PostedByUserID DatePosted
提前感谢您的帮助!
答案 0 :(得分:2)
SELECT Users.ID,
COUNT(User_Followers.FollowingUserID) AS follower_count
FROM Users
LEFT JOIN User_Followers
ON Users.ID = User_Followers.FollowingUserID
LEFT JOIN
(
SELECT PostedByUserID, COUNT(*) postCount
FROM photos
GROUP BY PostedByUserID
) a ON Users.ID = a.PostedByUserID
GROUP BY Users.ID
ORDER BY follower_count DESC, a.postCount DESC