SQL: Agregatwerte aus Count in Spalten zeigen

BitMan

Erfahrenes Mitglied
Hi,

folgendes Query führt schon fast zum Ziel:

Code:
SELECT cust, count(price) as anz, price FROM test.sales GROUP BY cust, price HAVING count(price) > 1;

Allerdings habe ich zu jedem Kunden (cust) mehrere Zeilen. Weis jemand ob es einen Weg gibt die Zählung der Betrage Spaltenweise aus zu geben, ohne das in einer Programmiersprache zu behandeln?

Ich glaube selber nicht das es geht. Bin aber nicht sicher.

cu BitMan
 
Ich geh mal davon aus, dass du MySQL verwendest.
Dann kannst du nach cust gruppieren und mit einem IF() bestimmen in welche Gruppe der Price gehört.
SQL:
SELECT 
	cust,
	SUM(IF(price < 20, 1, 0))  AS anz_bis_20,
	SUM(IF(price BETWEEN 20 AND 30, 1, 0)) AS anz_20_bis_30,
	SUM(IF(price BETWEEN 30 AND 50, 1, 0)) AS anz_30_bis_50
FROM 
	test.sales 
GROUP BY 
	cust
 
Zuletzt bearbeitet von einem Moderator:
Zurück