Announcement

Collapse
No announcement yet.

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

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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
    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

    [HIGHLIGHT=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
    [/HIGHLIGHT]

    Comment


    • #3
      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

      Comment


      • #4
        @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.

        Comment


        • #5
          Originally posted by Wursel View Post
          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

          Comment


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

            Comment


            • #7
              Originally posted by Ralf Jansen View Post
              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

              Comment

              Working...
              X