Vinzenz Mai: MYSQL Abfrage - count /group by

Beitrag lesen

Hallo Ingrid,

bevor Du irgendwelches PHP ins Spiel bringst (außer eventuell für Deinen DB-Client), bring' das Statement in Ordnung:

Im ersten Schritt schneiden wir uns die ersten zwei Zeichen Deiner PLZ aus:

SELECT DISTINCT

LEFT(plz, 2) Bereich
FROM
    tabelle
LIMIT 5

  

> gern auch alternativ mit dem von EKKi vorgeschlagenen SUBSTRING:  
  
hier liegt der Hase im Pfeffer:  
  
~~~sql
SELECT DISTINCT  
    [link:http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_substr@title=SUBSTRING](plz, 1, 2) Bereich  
FROM  
    tabelle  
LIMIT 5  

SUBSTRING in MySQL zählt die Zeichen ab 1, nicht ab 0.

Somit kommen wir zu

SELECT  
    SUBSTRING(plz, 1, 2) Bereich,  
    COUNT(*) Anzahl  
FROM  
    tabelle  
GROUP BY  
    SUBSTRING(plz, 1, 2)  

wobei MySQL es (als Erweiterung zum SQL-Standard) zulässt, nach einem Spaltenalias zu gruppieren:

SELECT  
    SUBSTRING(plz, 1, 2) Bereich,  
    COUNT(*) Anzahl  
FROM  
    tabelle  
GROUP BY  
    Bereich  

Freundliche Grüße

Vinzenz