v2.5.2
Giriş yap

Aynı ID'ye ait tekrar eden kayıtları listelemek MySQL

r00t
321 defa görüntülendi

id, user_id, comments şeklinde bir tablo olduğu senaryoda;
"user_id" özelinde bir sıralama yapmak istiyorum.
Örnek: 15 ID'li kullanıcı 85 tane yorum yapmış,
44 ID'li kullınıcı 47 tane yapmış... gibi, en çok yorum atan (en çok tekrar eden user_id'den, aşağıya doğru bir sıralama yapmak) istiyorum, nasıl yapılabilir?

ebykdrms
859 gün önce
SELECT id, user_id, COUNT(comments) as commentsCount
FROM tablo
GROUP BY user_id
ORDER BY commentsCount
LIMIT 1000

gibi bir sorgu işinize yarayabilir.

Pek ihtiyacım olmadığından pek de iyi bilmediğim GROUP BY kullanımına şu siteden baktım:
https://www.tasarimkodlama.com/veritabani/mysql/mysql-group-by-kullanimi/

Sitedeki MySQL GROUP BY Toplam (Aggregate) Fonksiyonlar ile Kullanımı başlığı altındaki Örnek Sorgu 2 örneğini baz aldım:
Örnek Sorgu 2 Yukarıdaki örnekte siniflara göre gruplama yaptık. Şimdi hangi sınıfta kaç öğrenci var ona bakalım. (Gruplar içinde saymak için COUNT aggregate fonksiyonu kullanılır.)

SELECT sinif, COUNT(*) as 'Mevcut'
FROM ogrenci
GROUP BY sinif

Örneği şu şekilde sonuç vermiş:

[
    { sinif: "10A", Mevcut: 15 },
    { sinif: "10B", Mevcut: 13 },
    { sinif: "10C", Mevcut: 12 },
    { sinif: "11A", Mevcut: 17 },
    { sinif: "9A", Mevcut: 14 },
    { sinif: "9B", Mevcut: 16 },
    { sinif: "9C", Mevcut: 13 },
]