Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Aus einer Spalte der Zeile verschiedene Werte zusammenfassen!

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von ||HOOG||, 29 Januar 2014.

  1. ||HOOG||

    ||HOOG|| Aktiver Benutzer

    Hi Leute,
    wir haben hier eine Kfz Website ind möchten quasi die verschiedenen Daten einer spalte zusammenfassen.
    Zum Beispiel : Mercdes-Benz 12, Smart 8 und so weiter ...Könnt ihr mir da mal weiterhelfen??

    Vielen Dank schonmal im vorraus!
     
  2. Margit

    Margit Fleissiger Benutzer Mitarbeiter

    Was meinst Du genau mit "zusammenfassen"?

    Z.B. wowas wie einen Überblick wie oft jeder Name vorkommt? Das geht mit einem GROUP BY:
    Code:
    SELECT autoname, count(*)
    FROM tabellenname
    GROUP BY autoname
     
  3. Hony%

    Hony% Datenbank-Guru

    Hi Hoog,

    Suchst du vielleicht nach GROUP_CONCAT()?
    Code:
    SELECT GROUP_CONCAT(Value)
    FROM table;
    Gruß
    Hony
     
  4. ||HOOG||

    ||HOOG|| Aktiver Benutzer

    Ich habe eine Fahrzeug DB mit sehr vielen Spalten (Eigenschaften des Fahrzeugs). Ich möchte nun Groupiert wissen, die Anzahl der verschiedenen Eigenschaften. Also wie viel der Marke OPEL, wie viel haben Xenon usw. Schon sowas wie Group by nur über alle Spalten.

    ||HOOG||
     
  5. ||HOOG||

    ||HOOG|| Aktiver Benutzer

    Leider nicht ,hast du noch andere Vorschläge?
     
  6. ||HOOG||

    ||HOOG|| Aktiver Benutzer

     
  7. Hony%

    Hony% Datenbank-Guru

    Das kommt drauf an. Wenn du wissen willst wie viele Xenon es von Opel gibt geht das mit weiteren Gruppierungen. Ansonsten hast du es mit völlig unterschiedlichen Mengen zu tun die du entweder einzeln abfragen oder einzeln per Subquery und Verkettung in einen Datensatz quetschen musst.

    Die Kosten für eine riesige Gesamtabfrage dürften vergleichsweise enorm sein.
     
  8. ukulele

    ukulele Datenbank-Guru

    Das geht schon alles mit GROUP BY muss aber für jede Spalte entsprechend gemacht werden. Je nachdem welche Spalte wieviele Werte enthalten kann könnte man auch zusätzlich mit CASE im Select arbeiten. Z.B.:
    Code:
    SELECT    marke,
            count(*) AS anzahl,
            sum((    CASE
                    WHEN    scheinwerfer = xeon
                    THEN    1
                    ELSE    0
                    END )) AS xeon
    FROM    autos
    GROUP BY marke
     
    ||HOOG|| gefällt das.
  9. ||HOOG||

    ||HOOG|| Aktiver Benutzer

    subquer
    Ja,super !Es klappt!!
    Ist es auch möglich wenn der Wert nicht auf xenon festgelegt ist ,sondern wenn der Wert dynamisch ist? z.B:alle Scheinwerfertypen
    und kann ich dies in ein subquery schreiben ohne das ich jeden Wert in Case eintragen muss?
     
  10. ukulele

    ukulele Datenbank-Guru

    Naja sobald du mehr verschiedene Werte in der Spalte haben willst wird es kompliziert. Entweder du bekommst mehrere Zeilen pro Automarke, das wäre dann ganz normal GROUP BY
    Code:
    SELECT    marke,
            scheinwerfer,
            count(*) AS anzahl
    FROM    autos
    GROUP BY marke,scheinwerfer
    oder du nutzt soetwas wie GROUP_CONCAT() aber damit habe ich keine Erfahrung unter MySQL. Damit könntest du etwas erzeugen wie
    Marke | Beleuchtung | Spalte3
    Opel | Xeon (5), Glühlampe (3) | Wert3
    Das ist natürlich auch nur mit einer geringen Anzahl von möglichen Werten sinnvoll.
    http://www.mysqlperformanceblog.com/2013/10/22/the-power-of-mysqls-group_concat/
     
  11. ||HOOG||

    ||HOOG|| Aktiver Benutzer

    ok ,danke für die Hilfe!!
     
  12. akretschmer

    akretschmer Datenbank-Guru

    Das klingt nach FAIL. Das klingt, als wenn bei jeder neu auftauchenden Eigenschaft ein neues Feld dazukommt. Zum Beispiel, morgen verkaufst nebenbau auch noch Kondome und Du hattes bisher nicht die Eigenschaft 'Geschmack' -> schwupps, neue Spalte.

    Ist das so?
     
    ||HOOG|| gefällt das.
  13. ||HOOG||

    ||HOOG|| Aktiver Benutzer

    Hi,
    sorry das ich jetzt erst antworte..
    Nein das war alles festgelegt.Es ging darum,dass ich wissen wollte wieviel verschiedene Sorten Geschmack es gibt. Zum Bleistift:Erdbeer (25stk) oder honnelulukokus(41stk)usw.

    Aber trotzdem danke
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden