[MySQL] Jeweils ein Datensatz von mehreren pro Zeiteinheit

Atalión

Mitglied
Hallo ihr :)

Ich hatte schon Probleme, die Überschrift möglichst treffend zu formulieren; bin mal gespannt, wie das bei der Problembeschreibung jetzt läuft xD

Also, ich habe in einer Tabelle mehrere Datensätze, die jeweils auch eine Zeitangabe enthalten. Vereinfach gesagt gibt es diese Felder: userID, Inhalt, time.

Die userID ist öfters doppelt. Jetzt möchte ich, dass bei der Ausgabe pro bestimmter Zeiteinheit (z.B. pro Stunde) jeweils nur ein Datensatz des gleichen Users/der gleichen userID ausgegeben wird.

Beispiel: In Stunde 1 schreibt user1 einen Inhalt, user2 einen Inhalt, user1 wieder einen Inhalt und user3 einen Inhalt. In Stunde 2 schreibt user1 einen Inhalt, user2 zwei Inhalte und user 3 einen Inhalt.

Wenn ich das jetzt normal nach Zeit geordnet ausgebe, wäre das:

user1 | Inhalt | Stunde 1
user2 | Inhalt | Stunde 1
user1 | Inhalt | Stunde 1
user3 | Inhalt | Stunde 1
user1 | Inhalt | Stunde 2
user2 | Inhalt | Stunde 2
user2 | Inhalt | Stunde 2
user3 | Inhalt | Stunde 2

Ich möchte aber, dass die Ausgabe wie folgt ist:

user1 | Inhalt | Stunde 1
user2 | Inhalt | Stunde 1
user3 | Inhalt | Stunde 1
user1 | Inhalt | Stunde 2
user2 | Inhalt | Stunde 2
user3 | Inhalt | Stunde 2

Ich hoffe, dass deutlich geworden ist, was ich erreichen möchte.

Meine Frage ist jetzt, ob das so mit MySQL in einer Abfrage überhaupt möglich ist, und wenn ja, wie ich das angehen müsste. Ich hatte schon mit Group By ... Having hantiert, aber ohne Erfolg..

Liebe Grüße,
Malte :)
 
Hallo,

wenn du den Zeitstempel auf Stunden truncatest, funktioniert es musst allerdings auch gruppieren

trunc('2011-08-02 18:39:54','HH24') würde '2011-08-02 18:00:00' ausgeben.

z.B.:
SQL:
SELECT
distinct userid, 
inhalt, 
trunc(ZEIT,'HH24') as Stunde
FROM xx
 
Zuletzt bearbeitet von einem Moderator:
Danke dir, das klingt eigentlich gut. Jedoch bekomme ich die Fehlermeldung, dass die Funktion "trunc" nicht existiert :/

Edit: ah, ich probier einfach mal, jeweils nur die Stunde vom Tiemstamp auszulesen.. das sollte ja eigentlich ähnlich funktionieren..

Edit 2: Und gleich das nächste Problem... die DATE_FORMAT() Funktion liefert nur ein leeres Ergebnis oO egal welchen timestamp oder welches Format ich angebe... -.-

Edit 3: okay super, hat geklappt! Danke :D
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück