Announcement

Collapse
No announcement yet.

Anfängerfrage

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

  • Anfängerfrage

    Hallo zusammen,

    könnt ihr mir vielleicht sagen, wie ich folgendes in SQL umsetzen kann:

    Ich habe eine Tabelle mit einer Spalte "Breite" in der sich verschiedene Breitenangaben befinden. Nun möchte ich wissen, welche verschiedenen Breiten es gibt und wieviele es von jeder Breite gibt. Also ein Ergebniss wie

    Breite Anzahl
    200 55
    300 137
    ...

    Geht das mit SQL?

    Vielen Dank

    traumstrand

  • #2
    Hallo,

    ja das mit GROUP BY und Aggregatfunktionen.

    In deinem Bsp:
    [highlight=sql]
    SELECT Breite, COUNT(Anzahl), SUM(Anzahl)
    FROM tblBreite
    GROUP BY Breite
    [/highlight]

    Dabei werden mit GROUP BY identische Datensätze zusammengefasst und mittels COUNT (eine Aggregatfunktione) gezählt wieviele, während SUM (ebenfalls eine Aggregatfunktion) die Summe bildet.

    mfG Gü
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

    Comment


    • #3
      Vielen Dank

      ich habe immer noch Probleme damit SQL Befehle Sinnvoll zu vereinen.

      Gruß

      traumstrand

      Comment


      • #4
        Hallo,

        schau mal unter http://www.sql-und-xml.de/sql-tutori...von-daten.html.

        Vielleicht hilfst.

        mfG Gü
        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

        Comment


        • #5
          So,

          die Abfrage im GUI Tool für Abfragen hat nun folgendes daraus gemacht:

          SELECT Breite, COUNT(Anzahl) AS Expr1, SUM(Anzahl) AS Expr2
          FROM MyTable
          ORDER BY Breite

          und wenn ich nu die Abfrage ausführe kommt der Fehler "In Aggregat- und Gruppierungsausdrücken darf die SELECT-Klausel nur Aggregat- und Gruppierungsausdrücke enthalten. [Select clause = ,Breite]"

          Ich verstehe den Fehler nicht...könnt ihr mir noch einmal helfen?

          Danke

          traumstrand

          Comment


          • #6
            Hallo,

            alle Felder, die in keiner Aggregatfunktion vorkommen, müssen gruppiert werden. Hier ist das Breite. Du musst also schreiben:

            SELECT Breite, COUNT(Anzahl) AS Expr1, SUM(Anzahl) AS Expr2
            FROM MyTable
            Group by Breite
            ORDER BY Breite

            Gruß
            docendo discimus

            Comment


            • #7
              sonst macht die Abfrage ja auch keinen Sinn wenn er nicht gupiert ist

              Comment

              Working...
              X