MYSQL: Zusammenzählen von Einträge aus mereren Tabellenzeilen und auflisten

tonihenkel

Grünschnabel
Ich hab mal die Frage zu einen erweiterten MYSQL Befehl, es handelt sich dabei um das zusammenzählen der ICAO FLughafen Code aus mehreren Tabllenzeilen (Startflughafen, Abflugsflughafen). Ich möchte diese zusammenzählen, wo der ICAO gleich ist und die entsprechende Summe anzeigen, sowie sie sortieren nach Anzahl. Bitte beachtet, das hier nur 12 verschiedene ICAOs genutzt wurden, aber es mehr als 1000 andere geben kann:

----------------------------------------
---pirepid-----arricao-----depicao----
--- 1 --------- EDDF ------ EDDM ----
--- 2 ---------EHAM ------ GCLP ----
--- 3 --------- EDDP ------ EDDM ---
--- 4 --------- KJFK ------ EDDF ----
--- 5 --------- EDDP ------ EHAM ----
--- 6 --------- VHHH ------ EDDF ----
--- 7 --------- EKCH ------ LIRF ----
--- 8 --------- FSIA ------ EDDF ----
--- 9 --------- FACT ------ EDDF ----
--- 10 --------- SCEL ------ EDDP ----
--- 11 --------- EDDF ------ EDDP ----
--- 12 --------- EDDM ------ FSIA ----
und so weiter...

Das ganze soll dann so aussehen:
EDDF: 5
EDDP: 4
EDDM: 3
EHAM: 2
FSIA: 2
VHHH: 1
FACT: 1
KJFK: 1
SCEL: 1
LIRF: 1


Bei einer kann man das ja mit GROUP BY lösen, aber wie mach ich das bei merheren Zeilen?
 
Moin tonihenkel,

SQL:
SELECT icao, count(*) as icao#
 FROM (
    SELECT arricao as icao from deineTable
    UNION ALL
    SELECT depicao as icao from deineTable
      ) whatever
  GROUP BY icao
  Order by icao# desc
  ;

Grüße
Biber
 
Funktioniert, das einzige was ich geändert hab:

ORDER BY icao DESC;

sonst werden die nur von kleinen zu großen geordnet. Danke !


BZW Modifiziert damits besser mit PHP läuft:


SELECT icao as city, COUNT(*) AS icao1
FROM (
SELECT arricao AS icao FROM phpvms_pireps
UNION ALL
SELECT depicao AS icao FROM phpvms_pireps
) whatever
GROUP BY icao
ORDER BY icao1 DESC;
 
Zuletzt bearbeitet:
Zurück