Mysql tablosunda INT (11) veri türüne sahip bir sütun var.mysql içindeki bir sütunda en çok bulunan 10 değer sayma
Bu sütunda en çok bulunan 10 değer elde etmek için nasıl arama yapabilirim?
Mysql tablosunda INT (11) veri türüne sahip bir sütun var.mysql içindeki bir sütunda en çok bulunan 10 değer sayma
Bu sütunda en çok bulunan 10 değer elde etmek için nasıl arama yapabilirim?
SELECT col, count(*)
FROM tablethingie
GROUP BY col
ORDER BY count(*) DESC
LIMIT 10
Dene:
SELECT ColName, Count(1) AS occurances
FROM
table
GROUP BY
ColName
ORDER BY
occurances DESC
LIMIT
10
TOP olsa MSSQL olduğunu MySQL desteklenmeyen bir anahtar kelimedir.
Bu şu sorgu istediğini yapmalıdır (denenmemiş, ama fikir netleşecektir):
SELECT column, COUNT(*) AS matches
FROM table
GROUP BY column
ORDER BY matches DESC
LIMIT 10
Aşağı oylamaya karşı yukarı-oyla; Çünkü, söyleyebildiğim kadarıyla, cevabınız tüm diğerleri için eşit olarak geçerlidir. Aşağı-seçmenlerin oylarını * açıklayabilmelerini diliyorum. Bu şekilde bir şeyler öğrenebiliriz. –
ricebowl, bunu açıklar mı? - http://stackoverflow.com/revisions/1831456/list - cevap downvoted sonra başkalarını taklit etmek için düzenlenmiş ;-) –
Gerçekten de, çünkü cevabımda bir hata gördüm, ben de düzeltdim. Bu şekilde, doğru cevaplar verilmiyor ve çalışmayan değil. Bir soruya verilen cevapların kalitesini yüksek tutmak. – Ben
SELECT colname, COUNT(*) AS cnt
FROM tablename
GROUP BY colname
ORDER BY cnt DESC
LIMIT 10
(silme için benim cevap İşaretli Aşağıdaki kodu deneyin: - Öyle mi saymak (col) yerine saymak (col) yerine saymak (*)? Hmm, ve daha verimli olan ... – Murph
Tamam, sanırım mysql'i değiştiren ilk sizdiniz :-), böylece silinirim ve bunu oylarım. – Peter
sayımı (col) null olmayan değerleri sayar. Col grup olduğumuz şey olduğu için, yine de aynı. sayım (*), saymaya (1) eşdeğerdir, ancak genellikle ikincisine göre önerilir. sayım (*), tam olarak ihtiyacınız olan her şeyden daha verimli olmalıdır. –