2017-02-09 2 views
0

ich jedes Element eine Zählung der Anzahl, wie oft bekommen kann mit dem folgenden MySQLMySQL Rückkehr Zählung jedes Element und das Rück alle Vorkommen dieses Elements

SELECT COUNT(*) AS count 
FROM example 
GROUP BY example.value 

Das Problem tritt auf, weil der GROUP BY-Anweisung , doppelte Datensätze werden nicht mit ihrem COUNT-Wert zurückgegeben.

IE Ich brauche dies:

  1. Äpfel - 2
  2. Äpfel - 2
  3. Orangen - 1
  4. Bananen - 3
  5. Bananen - 3
  6. Bananen - 3

Aber ich bekomme th ist:

  1. Äpfel - 2
  2. Orangen - 1
  3. Bananen - 3

Irgendwelche Ideen, wie dies geschehen könnte? Ich denke eine Art von einem Join, aber ich kann nicht den richtigen Weg, herauszufinden, mich um die Tabelle zu vergleichen

Antwort

2

Sie können JOIN verwenden:

select a.*, b.cnt 
from example a 
join (
    select value, count(*) cnt 
    from example 
    group by value 
    ) b on a.value = b.value; 
2
SELECT e.value, t.count 
FROM example e 
LEFT JOIN (SELECT value, COUNT(*) AS count 
    FROM example 
    GROUP BY example.value) t 
ON e.value = t.value; 
Verwandte Themen