ich eine Datentabelle wie dieseWie von Gruppe SUM wo Spalt bestimmter Wert
| start_date | end_date | sales | is_finished |
|:------------------------:|---------------------:|:------------:|:------------:
| 2017-03-24 09:11:00 | 2017-03-24 09:11:00 | 30 | 1
| 2017-03-24 08:30:00 | 2017-03-24 08:30:00 | 50 | 1
| 2017-03-24 08:14:00 | 2017-03-24 08:14:00 | 100 | 1
| 2017-03-24 07:30:00 | 2017-03-24 07:45:00 | 200 | 0
| 2017-03-24 07:00:00 | 2017-03-24 07:00:00 | 150 | 1
| 2017-03-24 06:40:00 | 2017-03-24 06:50:00 | 450 | 0
ich zu einer Gruppe muß unter Berücksichtigung haben haben die Zeilen von Startdatum und Enddatum, dass es auch dort, wo gehören und Enddatum Anfang gruppiert werden zu einer Zeile mit 1. Ich brauche auch de SUM jeder Teilmenge.
Ich brauche nächstes Ergebnis
| start_date | end_date | SUM(sales) |
|:------------------------:|---------------------:|:------------:|
| 2017-03-24 09:11:00 | 2017-03-24 09:11:00 | 30 |
| 2017-03-24 08:30:00 | 2017-03-24 08:30:00 | 50 |
| 2017-03-24 07:30:00 | 2017-03-24 08:14:00 | 300 |
| 2017-03-24 06:40:00 | 2017-03-24 07:00:00 | 600 |
Ich habe eine Abfrage zu bekommen, aber ich habe das Problem, dass, wenn es zwei Reihen mit is_finished Wert 1 zusammen die gruppiert sind.
Meine Frage ist:
SELECT SUM(sales) , MIN(start_date) , MAX(end_date)
FROM sales
GROUP BY
start_date > (SELECT start_date FROM sales WHERE is_finished = 1 ORDER BY end_date ASC LIMIT 1 OFFSET 1),
end_date <= (SELECT end_date FROM sales WHERE is_finished = 1 ORDER BY end_date ASC LIMIT 1)
ORDER BY end_date DESC
die Abfrage oben Verwenden Sie mich zu erwartendem Ergebnis der Nähe, aber es funktioniert nicht gut.
Vielen Dank im Voraus.
Vielen Dank, Dies ist die Lösung die ich brauche. –