SQL Count und Join

Diskutiere mit über: SQL Count und Join im Datenbanksysteme für das Web Forum

  1. Jakob

    Jakob Thread Starter MacUser Mitglied

    Beiträge:
    1.067
    Zustimmungen:
    21
    Registriert seit:
    05.01.2004
    Hallo,

    ich habe eine Log-Tabelle der Art
    Stunde des Tages | Herkunftsland
    vereinfacht sähen die Einträge so aus:
    17 | de
    17 | en
    18 | en
    18 | en
    18 | de
    (2 Menschen sind um 17 Uhr auf die Seite gegangen, einer deutsch, der andere englisch, 3 um 18 Uhr usw.)

    Nun möchte ich per SQL-Abfrage folgendes erstellen:

    Uhrzeit | de | en
    17 | 1 | 1
    18 | 2 | 1

    Die Länder stehen nun in den Spalten, pro Uhrzeit eine Zeile. Wie bekomme ich das hin? Es müsste ja irgendwie sowas sein wie:

    Code:
    SELECT Uhrzeit, COUNT(?) as de, COUNT(?) as en
    GROUP BY Uhrzeit
    Leider fehlen mir die Fragezeichen…
    Vielen Dank im Voraus für einen Tipp! Meine in dem Zusammenhang mal was von einem Self Join gehört zu haben, bringt das dort was? Kann's nicht drauf anwenden.
     
    Zuletzt bearbeitet: 11.10.2006
  2. timbajr

    timbajr MacUser Mitglied

    Beiträge:
    574
    Zustimmungen:
    26
    Registriert seit:
    22.04.2005
    wenn ichs richtig versteh müsste es mit select count(*) from ... group by uhrzeit, land

    ok falsch verstanden *sorry*
     
  3. Jakob

    Jakob Thread Starter MacUser Mitglied

    Beiträge:
    1.067
    Zustimmungen:
    21
    Registriert seit:
    05.01.2004
    Leider nicht, man bekommt dann wieder so viele Uhrzeiteinträge, wie es zu dieser Stunde Länder gab. Wäre also noch ein „19 | de“ in der Tabelle ergibt dein Code:
    Uhrzeit | Land
    17 | 1
    17 | 1
    18 | 1
    18 | 2
    19 | 1

    Das ist zwar nach Ländern aufgeteilt, aber leider nicht nach Zeilen und nicht Spalten. d.h. die Uhrzeit kommt mehrmals vor, was sie nicht sollte.
     
  4. norbi

    norbi MacUser Mitglied

    Beiträge:
    3.506
    Zustimmungen:
    22
    Registriert seit:
    14.01.2003
  5. Jakob

    Jakob Thread Starter MacUser Mitglied

    Beiträge:
    1.067
    Zustimmungen:
    21
    Registriert seit:
    05.01.2004
    Danke für den heißen Tipp :rolleyes:.

    Nen einfaches Stichwort wie Self Join, View oder sonstwas hätte gereicht.
     
  6. norbi

    norbi MacUser Mitglied

    Beiträge:
    3.506
    Zustimmungen:
    22
    Registriert seit:
    14.01.2003
    Wüßte ich es selbst, hätte ich's Dir sofort gesagt...
    Leider weiß ich es nicht, aber glaube, wo es steht.
    Drum der Link.

    Bitte, gerne, kein Problem. ;)

    No.
     
  7. Jakob

    Jakob Thread Starter MacUser Mitglied

    Beiträge:
    1.067
    Zustimmungen:
    21
    Registriert seit:
    05.01.2004
    Ah ok, hatte das „No.“ als Auskunftsverweigerung verstanden. Habe erst letztens ein 500-Seiten SQL-Buch gelesen, das Problem scheint mir nur leider nicht trivial. Die richtige URL wäre aber auch http://dev.mysql.com/doc/refman/5.0/en/index.html gewesen ;)
     
  8. DeineMudda

    DeineMudda unregistriert

    Beiträge:
    859
    Zustimmungen:
    72
    Registriert seit:
    12.05.2005
    SELECT Uhrzeit, Count(*) AS DE FROM xyz WHERE Herkunftsland = 'de' GROUP BY Uhrzeit
    UNION
    SELECT Uhrzeit, Count(*) AS EN FROM xyz WHERE Herkunftsland = 'en' GROUP BY Uhrzeit;
     
  9. timbajr

    timbajr MacUser Mitglied

    Beiträge:
    574
    Zustimmungen:
    26
    Registriert seit:
    22.04.2005
    Geh ich richtig davon aus, dass du MySQL verwendest ?
    Ich frage deswegen , weil es - soweit ich weiß - zB unter bestimmten MySQL Versionen noch keine subselects gibt. Auch UNIONS gehen da net

    Mit Selfjoins ? ich denk mal drüber nach :) so spät schon neben Fußball ..
     
  10. DeineMudda

    DeineMudda unregistriert

    Beiträge:
    859
    Zustimmungen:
    72
    Registriert seit:
    12.05.2005
    Ich glaub, seit 4.1 alpha kann MySQL die meisten "Ferkeleien". Und 5.0 sowieso.
     
Die Seite wird geladen...
Ähnliche Themen - SQL Count Join Forum Datum
SQL: Join auf Basis eines Start- und Endwerts aus der gejointen Tabelle Datenbanksysteme für das Web 02.09.2016
SQL: Nächstgelegenes Datum aus einer Gruppe ermitteln Datenbanksysteme für das Web 09.10.2014
SQL Datei anschauen! Datenbanksysteme für das Web 29.11.2013
SQL - Join - Nicht übereinstimmende Datensätze anzeigen Datenbanksysteme für das Web 02.02.2011
sql syntax frage Datenbanksysteme für das Web 21.10.2010

Diese Seite empfehlen

Benutzerdefinierte Suche