Ergebnis 1 bis 3 von 3

Thema: Count und Group By auf zwei Tabellen

  1. #1
    karl_ha ist offline Erfahrener Benutzer
    Registriert seit
    08.03.2009
    Beiträge
    225

    Standard Count und Group By auf zwei Tabellen

    Hi,
    ich nehme an, die Frage lässt sich (fast) jeder DB zuordnen.

    Ich habe 3 Tabellen:

    Los (id, name)
    Verteiler (id, los_id, name)
    Hausanschluss (id, los_id, name)


    Ich möchte wissen, wie viele Verteiler und Hausanschlüsse in einem Los sind.



    Die Hausanschlüsse und Verteiler getrennt zu erfassen ist kein Problem, wie aber wenn ich beide Summen haben möchte? Hier der Code, wie ich die Anzahl der Verteilersumme pro Los erhalte.

    Code:
       
    SELECT
        verteiler.los_id AS "LOS",
        count (los.id) AS "Anzahl Verteiler"
      
    FROM       
        los, 
        verteiler
        
    WHERE 
        los.id = verteiler.los_id
    
    GROUP BY
        verteiler.los_id
    Das ganze soll natürlich zügig laufen können. Ist es sinnvoll, hier einen Trigger zu verwenden, der die Summe der Verteiler/Hausanschlüsse in die Tabelle Los schreibt? (Eine andere Frage, ich weiß)

    Gruß Karl

  2. #2
    akretschmer ist gerade online Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.472

    Standard

    Zitat Zitat von karl_ha Beitrag anzeigen
    Hi,
    ich nehme an, die Frage lässt sich (fast) jeder DB zuordnen.

    Ich habe 3 Tabellen:

    Los (id, name)
    Verteiler (id, los_id, name)
    Hausanschluss (id, los_id, name)


    Ich möchte wissen, wie viele Verteiler und Hausanschlüsse in einem Los sind.



    Die Hausanschlüsse und Verteiler getrennt zu erfassen ist kein Problem, wie aber wenn ich beide Summen haben möchte? Hier der Code, wie ich die Anzahl der Verteilersumme pro Los erhalte.

    Code:
       
    SELECT
        verteiler.los_id AS "LOS",
        count (los.id) AS "Anzahl Verteiler"
      
    FROM       
        los, 
        verteiler
        
    WHERE 
        los.id = verteiler.los_id
    
    GROUP BY
        verteiler.los_id
    Code:
    test=*# select * from los;
     id | name
    ----+------
      1 | los1
      2 | los2
    (2 rows)
    
    test=*# select * from verteiler ;
     id | los_id |     name
    ----+--------+--------------
      1 |      1 | verteiler1_1
      2 |      1 | verteiler1_2
      3 |      2 | verteiler2_1
    (3 rows)
    
    test=*# select * from hausanschluss ;
     id | los_id |  name
    ----+--------+---------
      1 |      1 | haus1_1
      2 |      1 | haus1_2
      3 |      1 | haus1_3
      4 |      2 | haus2_1
    (4 rows)
    
    test=*# select foo.id, foo.name, foo.verteiler_anzahl, count(h) as haus_anzahl from (select l.id, l.name, count(v) as verteiler_anzahl from los l left join verteiler v on (l.id=v.los_id) group by l.id, l.name) foo left join hausanschluss h on (foo.id=h.los_id) group by foo.id, foo.name, foo.verteiler_anzahl;
     id | name | verteiler_anzahl | haus_anzahl
    ----+------+------------------+-------------
      1 | los1 |                2 |           3
      2 | los2 |                1 |           1
    (2 rows)
    Das ganze soll natürlich zügig laufen können. Ist es sinnvoll, hier einen Trigger zu verwenden, der die Summe der Verteiler/Hausanschlüsse in die Tabelle Los schreibt? (Eine andere Frage, ich weiß)

    Gruß Karl
    Ja, das ist eine andere Frage...

    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  3. #3
    karl_ha ist offline Erfahrener Benutzer
    Registriert seit
    08.03.2009
    Beiträge
    225

    Standard

    hey andreas,
    danke!

Ähnliche Themen

  1. JOIN mit COUNT und GROUP BY
    Von colua im Forum SQL
    Antworten: 2
    Letzter Beitrag: 20.03.2012, 14:46
  2. Abfrage aus zwei Tabellen
    Von Hanno im Forum SQL
    Antworten: 1
    Letzter Beitrag: 18.01.2011, 09:51
  3. Problem SQL Abfrage mit zwei Tabellen
    Von didi01 im Forum SQL
    Antworten: 3
    Letzter Beitrag: 25.05.2010, 17:58
  4. Abfrage aus zwei Tabellen
    Von nicolaiB im Forum SQL
    Antworten: 2
    Letzter Beitrag: 20.10.2009, 15:46
  5. Zwei Tabellen zusammenführen
    Von Starkilla im Forum SQL
    Antworten: 6
    Letzter Beitrag: 29.05.2008, 18:15

Stichworte

Berechtigungen

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

Links: Tobias Bauer - IT- und Funkdienstleistungen   -   Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen   -   Funkforum