Jak sprawdzić przez dany okres dni, ile był sam, a ile z innymi i ilu było tych innych?

0

Mam taki problem, przychodzi klient który parkuje samochód na 31 dni powiedzmy od 1 stycznia do 31 stycznia.
Drugi klient przyjeżdża i parkuje samochód od 8 stycznia do 14 stycznia
Trzeci klient parkuje od 8 stycznia do 31 stycznia

Chciałbym wiedzieć po wybraniu zakresu dat od 1 stycznia do 31 stycznia ile dni klient pierwszy parkował sam, a ile z innymi, czyli że wynik pokazuje:

Klient 1
bylo 1 klientow 7 dni (czyli on)
bylo 3 klientow 7 dni
bylo 2 klientow 17 dni

Jeśli zapytam klienta 2 to
bylo 3 klientów 7 dni

i jak zapytam o klienta nr 3 to:
bylo 3 klientów 7 dni
bylo 2 klientow 17 dni

Tabela parkowania

ID | user_id | start_date | end_date
---------------- | -------------------
1 | 22 | 01-01-2021 | 31-01-2021
1 | 22 | 08-01-2021 | 14-01-2021
1 | 22 | 08-01-2021 | 31-01-2021

I jak wyciągnąć ile osób parkowało wszystkich w danym zakresie dat ?

0

zrobione mozna skasowac

4

Opisz rozwiązanie.

What did you see?

4
SELECT `user_id`, DATEDIFF(CASE WHEN `end_date` >= CAST('2021-01-19' AS DATE) THEN CAST('2021-01-19' AS DATE) ELSE `end_date ` END, CASE WHEN `start_date` <= CAST('2021-01-16' AS DATE) THEN CAST('2021-01-16' AS DATE) ELSE `start_date ` END) + 1 as `days`
FROM `rents`
WHERE (`start_date ` <= CAST('2021-01-19' AS DATE) AND `end_date ` >= CAST('2021-01-16' AS DATE))
GROUP BY `user_id`, `days`;

to pokazuje nam w zadanym okresie ilu uzytkownikow i przez ile dni jednoczesnie parkowali.

1 użytkowników online, w tym zalogowanych: 0, gości: 1