Joah.: MySQL ORDER BY

Hallo,

ist grundsätzlich so etwas in der Art möglich:

Beispiel ist stark vereinfacht, bitte nicht wundern und auch keine Kommentare hierzu, es geht nur um die ORDER BY Syntax):

Tabele auto:
autoid, marke, name des autos

Suche nach Autos mit Klimaanlage würde beispielsweise 30 Autos finden, davon 15 der Marke BMW, 8 der Marke FIAT und so weiter.

In einem ersten Statement hole ich mir mit SELECT COUNT(*) as anzahl FROM autos WHERE klimaanlage=1 GROUP BY marke ORDER BY anzahl DESC die Autos.

SELECT * FROM auto WHERE klimaanlage=1 ORDER BY marke "bmw, fiat, rest).

Hat da jemand Erfahrung?

Danke für eure Hilfe.

Gruß
Joah.

  1. In einem ersten Statement hole ich mir mit SELECT COUNT(*) as anzahl FROM autos WHERE klimaanlage=1 GROUP BY marke ORDER BY anzahl DESC die Autos.

    SELECT * FROM auto WHERE klimaanlage=1 ORDER BY marke "bmw, fiat, rest).

    Warum machst du das nicht bei der ersten Abfrage?

    Müßte dch eigentlich so gehen:
    SELECT marke, COUNT(marke) as anzahl FROM autos WHERE klimaanlage=1 GROUP BY marke ORDER BY marke ASC

    Struppi.

    1. Hi!

      SELECT * FROM auto WHERE klimaanlage=1 ORDER BY marke "bmw, fiat, rest).

      Warum machst du das nicht bei der ersten Abfrage?

      Müßte dch eigentlich so gehen:
      SELECT marke, COUNT(marke) as anzahl FROM autos WHERE klimaanlage=1 GROUP BY marke ORDER BY marke ASC

      Damit bekomme ich welche Marke wieviele Resultate hat. Ich möchte aber alle Resultate die auf die Kriterien zutreffen, sortiert nach der Anzahl pro Marke....

      Joah.

      1. hi,

        SELECT marke, COUNT(marke) as anzahl FROM autos WHERE klimaanlage=1 GROUP BY marke ORDER BY marke ASC

        Damit bekomme ich welche Marke wieviele Resultate hat. Ich möchte aber alle Resultate die auf die Kriterien zutreffen, sortiert nach der Anzahl pro Marke....

        das wirst du m.E. nicht mit einer query hinbekommen.
        GROUP BY sorgt ja dafür, dass dir von jeder marke nur noch ein datensatz geliefert wird.

        wäre in diesem falle evtl. performanter und auch einfacher, das ganze scriptseitig zu machen.
        daten in ein array packen, zählen, sortieren.

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
      2. Damit bekomme ich welche Marke wieviele Resultate hat. Ich möchte aber alle Resultate die auf die Kriterien zutreffen, sortiert nach der Anzahl pro Marke....

        Mir ist nach nochmaligen durchlesen der orginal Frage nicht mehr klar was du eigentlich willst. Da ich auch keine eindeutige Frage erkennen kann.

        Struppi.

  2. Hi Joah,

    SELECT * FROM auto WHERE klimaanlage=1 ORDER BY marke "bmw, fiat, rest)

    http://aktuell.de.selfhtml.org/tippstricks/datenbanken/sqlsort/

    Gruß, Marian

  3. yo,

    welche Version von mysql kommt den zum einsatz, kann diese etwa unterabfragen bearbeiten ?

    Ilja