Lekérdezések – feladat#6

Adott egy adatbázis következő két táblája.
ember (id, nev, varos, szuldat) ↦ ember.csv
auto (rendsz, tulajId, tipus, szin, ar, evjarat) ↦ auto.csv

  1. Írasd ki a hajdúnánási emberek nevét névsorban!
  2. SELECT nev FROM ember WHERE varos="Hajdúnánás" ORDER BY nev;

  3. Mennyi a Honda típusú autók átlagára?
  4. SELECT avg(ar) FROM auto WHERE tipus="Honda";

  5. Mennyi a hajdúnánási autók darabszáma?
  6. SELECT count(*) FROM auto, ember WHERE auto.tulajId = ember.id AND varos LIKE "Hajdúnánás%";

  7. Írasd ki az autók darabszámát városonként, városok szerinti sorrendben!
  8. SELECT varos, count(*) FROM auto, ember WHERE auto.tulajId=ember.id GROUP BY varos ORDER BY varos;

  9. Kik azok az emberek (névsorban!), akiknek van Hondája?
  10. SELECT nev FROM ember, auto WHERE ember.id = auto.tulajId AND tipus="Honda" ORDER BY nev;
    

    vagy

    SELECT nev FROM ember WHERE id IN (SELECT tulajId FROM auto WHERE tipus="Honda") ORDER BY nev;

  11. Írasd ki azoknak az embereknek a nevét fordított sorrendben, akiknek nincs Hondája! (Szegények! ☺)
  12. SELECT nev FROM ember WHERE id NOT IN (SELECT tulajId FROM auto WHERE tipus="Honda") ORDER BY nev DESC;

    vagy

    (SELECT nev FROM ember) - (SELECT nev FROM ember, auto WHERE ember.id = auto.tulajId AND tipus="Honda") ORDER BY nev DESC;

  13. Írasd ki a Hondák átlagáránál olcsóbb autók darabszámát!
  14. SELECT count(*) FROM auto WHERE ar < (SELECT avg(ar) FROM auto WHERE tipus="Honda");

  15. Kik azok (név), akiknek a Hondák átlagáránál drágább autója van?
  16. SELECT nev FROM ember, auto WHERE ember.id=auto.tulajId AND ar > (SELECT avg(ar) FROM auto WHERE tipus="Honda");

  17. Ki a legdrágább Honda tulajdonosa? (név, város)
  18. SELECT nev, varos FROM ember, auto WHERE ember.id=auto.tulajId AND ar = (SELECT max(ar) FROM auto WHERE tipus="Honda");

  19. Hol van (város) 3-nál kevesebb Honda?
  20. SELECT varos, count(*) AS db FROM auto, ember WHERE ember.id=auto.tulajId AND tipus="Honda" GROUP BY varos HAVING count(*)<3;

  21. Írasd ki az összes ember nevét, címét, autójának rendszámát és típusát! Azok az emberek is szerepeljenek az eredményben, akiknek nincs autójuk!
  22. SELECT nev, varos, rendsz, tipus FROM ember LEFT OUTER JOIN auto ON ember.id = auto.tulajId;

  23. Kik azok, akik a saját városukra jellemző átlagárnál drágább autóval rendelkeznek?
  24. SELECT e1.nev FROM ember e1, auto a1 WHERE e1.id = a1.tulajId AND a1.ar > (SELECT AVG(a2.ar) FROM ember e2, auto a2 WHERE e2.id = a2.tulajId GROUP BY e2.varos HAVING e1.varos = e2.varos);