MYSQL Gruppieren nach Intervallen

darkpriest

Mitglied
Hallo,

ich bekomme aus einer Tabelle eine Liste mit den Standtagen und Wert pro Fahrzeug zurück!

Nun möchte ich diese in Intervalle gruppieren u. die Anzahl und den Wert pro Intervall angeben!

Also ich möchte

alle Autos < 30 Standtage
alle Autos < 30 Standtage u. alle Autos > 60 Standtage

usw.

Hat jemand einen Ansatz oder Hinweis für dieses Problem?

Danke!

Darkpriest
 
Hallo,

hast Du denn schon eine SQL-Query gebaut?

Wie sieht Deine Tabelle/n - Struktur aus.

Wenn ich mir eine Tabelle vorstelle in der folgendes steht

stand_tage, wert_auto
----------------,---------------
3 , 150
2 , 30
1 , 30
7 , 210

Dann würde die Abfrage für anzahl der autos <= 30 und > 60 so aussehen:
PHP:
SELECT
           count (*) as ANZAHL
FROM
           meine_tabelle
WHERE
          wert_auto
BETWEEN
         30 AND 60
 
In einer Schleife könnte er es machen, das ist kein problem. Aber ich glaube er wollte mit einer Abfrage alle Intervallen bekommen.
Dazu ist mir leider nichts eingefallen. Du wirst es also mit einer Schleife machen müssen.

Dunas
 
Hallo,

vielleicht klappt's auch so:
SQL:
SELECT
  COUNT(*) AS Anzahl,
  (Standtage DIV 30) * 30 AS MinTage,
  (Standtage DIV 30) * 30 + 29 AS MaxTage
FROM Tabelle
GROUP BY Standtage DIV 30

Grüße,
Matthias
 
Mir kam gerade, wärend einer Gurkenmaske *g, eine Idee:
Code:
SELECT
  COUNT(*) AS Anzahl,
  If( 0 <= Standtage <= 30,0,Standtage) AS Intervall1,
  If(31 <= Standtage <= 60,1,Standtage) AS Intervall2,
  If(61 <= Standtage <= 90,2,Standtage) AS Intervall3
FROM Tabelle
GROUP BY Standtage DIV 30

Ich habe den Code nicht getestet, aber mit der Idee solltest du sicher weiter arbeiten können.
 
Zuletzt bearbeitet:
Zurück