Willkommen bei Entwickler-Forum.
Ergebnis 1 bis 7 von 7
  1. #1
    Gesperrt
    Registriert seit
    29.03.2011
    Beiträge
    66

    Standard Ideensuche: Zählen, wie oft etwas im gleichen Zeitbereich stattgefunden hatte

    Hallo Forum,

    ich suche nach Ideen, wie ich am sinnvollsten eine Auswertung von Spitzenauslastungen erstellen könnte. Konkret geht es darum: Es gibt 10 Parkplätze, auf denen zu beliebigen Zeiten Autos parken können. Jetzt möchte ich gerne schauen, zu welchen Zeiten die Parkplätze am meisten ausgelastet waren d.h. wann am meisten Fahrzeuge gleichzeitig auf den Parkplätzen standen und wie viele gleichzeitig. Ganz genial wäre es, wenn die zeitliche Überlappung sichtbar wäre. Z.B. 4 Autos für 30 Minuten, 3 Autos für 50 Minuten, 2 Autos für 140 Minuten, 1 Auto für 300 Minuten und 0 Autos für 920 Minuten pro Tag.

    Da die Autos auf jedem Parkplatz zu beliebigen Zeiten kommen und gehen können und daher zu unterschiedlichen Zeiten unterschiedlich lange stehen, weiß ich gerade nicht, wie ich das am besten feststellen kann. Habt ihr mir da Ideen, wie ich das machen könnte?

    Die Quelldaten sehen in etwa so aus:
    Code:
    Parkplatz	Datum			Uhrzeit Beginn		Uhrzeit Ende	
    1		1.3.2017		08:00			9:00
    1		1.3.2017		10:00			12:00
    1		1.3.2017		14:00			18:00
    2		1.3.2017		09:00			15:00
    3		1.3.2017		12:00			16:00

  2. #2
    Stammgast
    Registriert seit
    26.02.2003
    Beiträge
    4.826

    Standard

    Ich würde erst eine virtuelle Tabelle erstellen mit den Zeiten zu denen sich was ändert und dann mit dieser joinen um zu jedem dieser Zeiten zu denen sich was geändert hat den count zu ermitteln.

    Beispiel für Sql server zum probieren siehe http://rextester.com/PBWBE79806

    Code SQL:
    CREATE TABLE ParkingTimes(
      [ParkingTimesId] BIGINT NOT NULL PRIMARY KEY, 
      [ParkingPlaceId] INT NOT NULL, 
      [BEGIN] datetime NOT NULL,  
      [END] datetime NOT NULL);
     
    INSERT INTO ParkingTimes ([ParkingTimesId], [ParkingPlaceId], [BEGIN], [END])
    VALUES
        (1, 1, '2017-03-01T08:00:00', '2017-03-01T09:00:00'),
        (2, 1, '2017-03-01T10:00:00', '2017-03-01T12:00:00'),
        (3, 1, '2017-03-01T14:00:00', '2017-03-01T18:00:00'),
        (4, 2, '2017-03-01T09:00:00', '2017-03-01T15:00:00'),
        (5, 3, '2017-03-01T12:00:00', '2017-03-01T16:00:00');
     
    WITH dates AS    
    (    
        SELECT DISTINCT [BEGIN] AS DATE FROM ParkingTimes
        UNION 
        SELECT DISTINCT [END] FROM ParkingTimes
    )
     
    SELECT d.DATE, COUNT(*) 
      FROM dates d
             JOIN ParkingTimes pt ON  d.DATE >= pt.[BEGIN]
                                  AND d.DATE <  pt.[END]   
     GROUP BY d.DATE

  3. #3
    Stammgast
    Registriert seit
    24.10.2011
    Beiträge
    1.283

    Standard

    Die Frage klingt so, als ob Du eigentlich ein Analysetool einsetzen solltest, um einen Status Quo zu ermitteln.
    Dann überlegt man sich, welche dieser Fälle eigentlich irgendeine und welche Relevanz haben und dann würde man evtl. ein Reporting dafür anfertigen.
    Wenn Du das nicht möchtest, wäre ein erster Schritt mit dem man nichts falsch macht, tatsächlich eine Abfrage die Anzahl der Fahrzeuge auf Zeitintervalle abträgt, ggF. Raster wählbar. Das ergäbe schon mal eine schöne Grafik.
    Ansonsten wäre für ein Reporting noch hilfreich zu wissen:
    Wieviel Plätze gibt es überhaupt je Parkplatz
    Wie groß ist die Distanz zwischen den Plätzen.
    Wie groß ist die Distanz zwischen den Plätzen und einem /mehreren Zielorten.
    usw.

    Ob eine Verweildauer allein für eine Spitzenauslastung relevant ist? Hochfrequenter Parkplatz wechsel kann haargenau die gleiche Spitzenauslastung ergeben, wie eine geringe Wechselfrequenz mit längerer Parkzeit.
    Gruß, defo

  4. #4
    Gesperrt
    Registriert seit
    29.03.2011
    Beiträge
    66

    Standard

    @Ralf Jansen: Vielen Dank für das Beispiel, das hilft mir schon mal weiter! Dieses rextester.com ist ja wirklich cool mit dem Live austesten von Querys mit diversen Datenbanken. Ich kannte bislang nur Sachen wie jsfiddle.net für's Programmieren.

    @defo: Ja da hast Du natürlich recht, man muss im Detail schauen, was Sinn macht und was nicht und was es für Randbedingungen gibt. Für meinen speziellen Fall reicht das auch so. Es gibt nur ein Auto pro Parkplatz und es gibt 10 Parkplätze pro Areal. Jeder Parkplatz hat eine getrennte Ein- und Ausfahrt, sodass sich da nichts stauen kann. Die Wechselzeiten zwischen den Autos sind sehr konstant und auch kurz. Weit fahren muss man auch nicht und die Wege sind nahezu gleich weit. Es gibt immer nur eine begrenzte Anzahl von Autos, die maximal ins Areal rein dürfen.

  5. #5
    Stammgast
    Registriert seit
    24.10.2011
    Beiträge
    1.283

    Standard

    Zitat Zitat von Wursel Beitrag anzeigen
    Es gibt nur ein Auto pro Parkplatz und es gibt 10 Parkplätze pro Areal. Jeder Parkplatz hat eine getrennte Ein- und Ausfahrt, sodass sich da nichts stauen kann. Die Wechselzeiten zwischen den Autos sind sehr konstant und auch kurz. Weit fahren muss man auch nicht und die Wege sind nahezu gleich weit. Es gibt immer nur eine begrenzte Anzahl von Autos, die maximal ins Areal rein dürfen.
    Ich hatte jetzt gedacht, 1 Parkplatz = eine Fläche (~areal), wo mehrere Autos parken können.
    Also redet man von insgesamt 30 Parkmöglichkeiten?
    Das gibt auch keine dicke Statistik. Ich frage mich nun, ob man für 30 Parkboxen überhaupt so einen Aufstand machen muss.
    Na gut.
    Gruß, defo

  6. #6
    Stammgast
    Registriert seit
    26.02.2003
    Beiträge
    4.826

    Standard

    Ich frage mich nun, ob man für 30 Parkboxen überhaupt so einen Aufstand machen muss.
    Weil es zum Beispiel eine Übungsaufgabe ist?

  7. #7
    Stammgast
    Registriert seit
    24.10.2011
    Beiträge
    1.283

    Standard

    Zitat Zitat von Ralf Jansen Beitrag anzeigen
    Weil es zum Beispiel eine Übungsaufgabe ist?
    Ja, wieso nicht. Parkplätze sind gerne eine Übungsaufgabe, sogar bei der Fahrprüfung.
    In dem Fall glaube ich ist es ernst.
    Aber egal, alles gut
    Gruß, defo

 

 

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •