Nasıl benim MySQL tablosunda bir sütunda en yaygın sonucu bulurum

3 Cevap php

PHP ve MySQL kullanarak, benim kullanıcıların en girdileri gönderdi kişiyi bulmak için yaptık ilanları bir tablosunu sorgulamak istiyorum.

Bu ne için doğru sorgu olurdu?

Örnek tablo yapısı:

[id] [UserID]
1     johnnietheblack
2     johnnietheblack
3     dannyrottenegg
4     marywhite
5     marywhite
6     johnnietheblack

Ben "johnnietheblack" top afiş, "marywhite" ikinci en iyi için olduğunu, ve "dannyrottenegg" az olduğunu görmek istiyorum

3 Cevap

Gibi bir şey:

SELECT COUNT(*) AS `Rows`, UserID
FROM `postings`
GROUP BY UserID
ORDER BY `Rows` DESC
LIMIT 1

Bu sayım bunu çıktısı, yüksek değeri bulmak için bile belirli bir kimliği tarafından yayınlanmıştır satır sayısı, o sıralar alır ve kişinin kimliği. Gerçi uygun sütun ve alan ile 'Kimliklerini' ve 'ilanları' değiştirmeniz gerekir.

Ben bu işe gerektiğine inanıyorum ...

SELECT user_id, COUNT(*) FROM postings ORDER BY COUNT(*) GROUP BY user_id LIMIT 1

Ilanı varsayarsak her satır recipient_user_id için user_id itibaren bir ilanı temsil eden bir demet (User_id, recipient_user_id) şudur:

select user_id, count(*) as posts 
from postings
group by user_id
having count(*) = max(count(*)) ;