Announcement

Collapse
No announcement yet.

Gleiche Einträge multiplizieren

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

  • Gleiche Einträge multiplizieren

    HI!
    Ich habe eine Tabelle (leider ohne Primärschlüssel), bei der ich gerne eine Anzahl berechnen würde.
    Leider kommt in der Tabelle der zu suchende Wert mehrmals vor.

    Aufbau:

    Name|Anzahl
    abc|2
    aaa|2
    abc|3
    aab|1

    Ergebnis sollte wie folgt aussehen:
    Name|Anzahl
    abc|5
    aaa|2
    aab|1

    Kann mir jemand weiterhelfen?

  • #2
    Hi,

    bei Mysql würde ich die Werte nach dem Namen gruppieren(GROUP BY) und die Anzahl mit der Funktion sum() addieren lassen. Das dürfte sich wohl allgemein auf SQL übertragen lassen.
    "(...) deshalb mag ich Binärtechnik. Da gibt es nur drei Zustände: High, Low und Kaputt." (Wau Holland)

    Viele Grüße Novi

    Comment


    • #3
      KLASSE, danke!
      Einwandfrei!

      Perfekt wäre jetzt noch, wenn ich von dem Ergebnis die Top 10 POSITIV UND NEGATIV haben könnte. Eines davon ist kein Problem, aber sowohl als auch?

      Comment


      • #4
        mach doch beide Queries und verbinde sie mit UNION ALL in etwa so:

        [highlight=sql]
        SELECT *
        FROM
        (
        --Höchste 10
        SELECT Top 10 *
        FROM
        (
        SELECT Name, SUM(Anzahl)
        FROM Tabelle
        GROUP BY Name
        ORDER BY ANZAHL DESC
        )
        UNION ALL
        --Niedrigste 10
        SELECT Top 10 *
        FROM
        (
        SELECT Name, SUM(Anzahl)
        FROM Tabelle
        GROUP BY Name
        ORDER BY Anzahl ASC
        )
        )
        ORDER By Anzahl Desc
        [/highlight]

        Comment


        • #5
          Hi,

          nur mal so eine Frage, wie kommst du eigentlich zu dem Thema "Gleiche Einträge multiplizieren"?
          "(...) deshalb mag ich Binärtechnik. Da gibt es nur drei Zustände: High, Low und Kaputt." (Wau Holland)

          Viele Grüße Novi

          Comment


          • #6
            verbinde sie mit UNION ALL
            Auf einen UNION ALL würde ich hier eher verzichten. Wenn es insgesamt nur 10 Ergebnisse gibt, bekomme ich diese doppelt geliefert, eben einmal mit ASC und DESC; besser nur UNION, damit die Dubletten raus gefiltert werden, oder im äußeren SELECT ein DISTINCT verwenden.
            Olaf Helper

            <Blog> <Xing>
            * cogito ergo sum * errare humanum est * quote erat demonstrandum *
            Wenn ich denke, ist das ein Fehler und das beweise ich täglich

            Comment

            Working...
            X