2010-10-14 16 views
8

nasıl select deyimi buradaMySQL sayımı

wihtin çiftleri satırları sayabilir çoğaltan benim tablodur

name food 
A Apple 
B Banana 
A Banana 
C Apple 

Sonucu böyle olmalı:

name food count 
A apple (2) 
B Banana (1) 
A Bananaa (2) 
C Apple (1) 

Ben sonuçta üçüncü Kolon gerek hangi değerin seçileceğini ayarlayın (Ad)

Şimdiden teşekkürler

cevap

23

Tam olarak ne yapmak istediğiniz açık değil, bu yüzden burada iki olasılık var.

SELECT name, food, COUNT(*) AS count 
FROM your_table_name 
GROUP BY name, food 

Alternatif olarak, eğer: Aynı name ve food kombinasyon grubunda kaç belirlemek için, kayıtlar gibi grubu ve COUNT için GROUP BY kullanabilirsiniz oluşur kaç kez belirlemek istiyorsanız

Eğer, bir alt sorgu gerekir kaç kez tek isim çiftleri almak istiyorum:

SELECT name, food, 
    (
    SELECT COUNT(*) 
    FROM your_table_name 
    WHERE name = table_alias.name 
) AS count 
FROM your_table_name AS table_alias 

ilk sorgu name başına yalnızca bir satır döndürür/food grubunda, grupta kaç kayıt olduğunu görebilirsiniz. İkinci sorgu, her satırda kaç satırın aynı ada sahip olduğu ile birlikte tüm satırları döndürecektir. her şeyin sayısını, tekrarlar da sadece dizilerini istiyorsanız o kopyaları olmayan hiçbir şeyi dışarı filtrelersiniz olarak

+0

Dün böyle bir şey olduğunda verileri manuel olarak saymak için fasulye bekliyorum. Çok teşekkürler. – newbie

22
SELECT name, food, COUNT(food) AS cnt 
FROM table 
GROUP BY name, food 
HAVING (cnt > 1) 

, o zaman, HAVING çizgiyi ortadan kaldırır.