I\'m trying to select the user who has the MAX microposts count:
SELECT \"name\", count(*) FROM \"users\"
INNER JOIN \"microposts\" ON \"microposts\".\"us
SELECT x.name, MAX(x.count)
FROM (
SELECT "name", count(*)
FROM "users" INNER JOIN "microposts" ON "microposts"."user_id" = "users"."id"
GROUP BY users.id
) x
I'd try with a ORDER BY max DESC LIMIT 1, where maximum is the count(*) field. Something like:
SELECT "name", count(*) maximum FROM "users"
INNER JOIN "microposts" ON "microposts"."user_id" = "users"."id"
GROUP BY users.id
ORDER BY maximum DESC
LIMIT 1
I dont' have mysql available now, so I'm doing this on the paper (and it might not work), but it's just an orientation.
It's pretty simple, you can try:
SELECT "name", MAX(count_num) FROM
(SELECT "name", count(*) as count_num
FROM "users" INNER JOIN "microposts" ON "microposts"."user_id" = "users"."id"
GROUP BY users.id) x
SELECT TOP 1 "name", count(*) AS ItemCount FROM "users"
INNER JOIN "microposts" ON "microposts"."user_id" = "users"."id"
GROUP BY users.id
ORDER BY ItemCount DESC
maybe like this:
SELECT "name", count(*)
FROM "users"
INNER JOIN "microposts" ON "microposts"."user_id" = "users"."id"
GROUP BY users.id
HAVING COUNT(microposts) = (SELECT COUNT(microposts)
FROM users
GROUP BY microposts
ORDER BY COUNT(microposts) DESC
LIMIT 1)
Didn't test it, but it might work