Witam, mój uproszczony kod wygląda następująco:
SELECT
a.user_id as User_ID,
min(b.a_day) as Date_from,
max(b.a_day) as Date_to,
c.code as ID
FROM a, b, c
WHERE
a_day > (day, -15, getdate())
GROUP BY
a.user_id,
b.a_day,
c.code
Zapytanie daje następujący wynik:
User ID date_from date_to id
1234567 2016-06-13 2016-06-13 B
1234567 2016-06-17 2016-06-17 A
1234567 2016-06-18 2016-06-18 A
1234567 2016-06-19 2016-06-19 A
1234567 2016-06-20 2016-06-20 A
1234567 2016-06-21 2016-06-21 B
Przy wyłączeniu z klauzuli GROUP BY kolumny b.a_day, otrzymuję zagregowany wynik w postaci:
User ID date_from date_to id
1234567 2016-06-13 2016-06-21 B
1234567 2016-06-17 2016-06-20 A
Podczas, gdy wynik musiałby wyglądać następująco (chodzi o sumowanie ciągłości dni i osobne wyszczególnienie dni pojedynczych):
User ID date_from date_to id
1234567 2016-06-13 2016-06-13 B
1234567 2016-06-17 2016-06-20 A
1234567 2016-06-21 2016-06-21 B
Dzieliłem się już tym pytaniem na stackoverflow ale nie za bardzo rozumiem odpowiedź:
http://stackoverflow.com/questions/39484658/how-to-group-by-with-an-exception
Z góry dzięki za pomoc.