2010-10-14 16 views
8

jak mogę liczyć duplikatów wierszy wihtin selectIlość mysql powiela

tutaj jest mój stół

name food 
A Apple 
B Banana 
A Banana 
C Apple 

Wynik powinien wyglądać następująco:

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

muszę trzeci kolumnowej błyskawicznej, w wyniku ustaw, która wartość będzie liczona (Nazwa)

Z góry dziękuję

Odpowiedz

23

Nie jest jasne, co dokładnie chcesz zrobić, więc masz dwie możliwości.

Jeśli chcesz określić, ile razy występuje ta sama name i food połączenie, można użyć GROUP BY do grupy jak ewidencji i COUNT określić, ile są w grupie:

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

alternatywnie, jeśli chcesz pobierać, ile razy tylko duplikaty nazw, musisz podkwerenda:

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

pierwsze zapytanie zwróci tylko jeden wiersz za name/food grupa, wraz z liczbą wyświetlanych rekordów w grupie. Drugie zapytanie zwróci wszystkie wiersze z liczbą wierszy o tej samej nazwie w każdym wierszu.

+0

Mam fasolę czekając mój czas wczoraj licząc dane ręcznie, gdy jest coś takiego jak to. Wielkie dzięki. – newbie

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

Jeśli chcesz liczyć wszystkiego, nie tylko krotki z duplikatów, a następnie wyeliminować linię mające, jako że będzie odfiltrować niczego, co nie ma duplikatów.