Zorbing

[DB] select_pres.sql

May 18th, 2014
445
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 1.98 KB | None | 0 0
  1. CONNECT TO dbs;
  2.  
  3. -- a) Welche Praesidenten wurden wann im Bundesstaat "Texas" geboren?
  4. SELECT pres_name, birth_year
  5. FROM president
  6. WHERE state_born = 'Texas';
  7.  
  8. -- b) Welche Praesidenten sind noch nicht gestorben?
  9. SELECT p.pres_name, p.birth_year, p.years_serv, p.party, p.state_born
  10. FROM president p
  11. WHERE death_age IS NULL;
  12.  
  13. -- c) Was sind die verschiedenen (DISTINCT) Parteien aller bisherigen Praesidenten?
  14. SELECT DISTINCT party
  15. FROM president;
  16.  
  17. -- d) Geben Sie alle(!!) in der Datenbank verfuegbaren Informationen ueber Bush aus!
  18. SELECT *
  19. FROM president p
  20.     LEFT JOIN state s ON p.state_born = s.state_name
  21.     LEFT OUTER JOIN pres_hobby h ON p.pres_name = h.pres_name
  22.     LEFT OUTER JOIN pres_marriage m ON p.pres_name = m.pres_name
  23.     LEFT OUTER JOIN election e ON p.pres_name = e.candidate
  24. WHERE p.pres_name LIKE '%Bush%';
  25.  
  26. -- e) Welche Praesidenten sind Republikaner oder in Texas geboren?
  27. SELECT *
  28. FROM president
  29. WHERE party = 'Republican' OR state_born = 'Texas';
  30.  
  31. -- f) Welche Praesidenten waren genau 4, 8 oder 12 Jahre im Amt?
  32. SELECT *
  33. FROM president
  34. WHERE years_serv IN (4, 8, 12);
  35.  
  36. -- g) Geben Sie die Bundesstaaten sortiert nach dem Eintrittsjahr aus.
  37. SELECT *
  38. FROM state
  39. ORDER BY year_entered;
  40.  
  41. -- h) Wieviele Wahlkandidaten haben verloren und wieviele gewonnen? (Dabei sollen dieselben Wahlkandidaten in unterschiedlichen Wahlen mehrfach zaehlen, d.h. Duplikatelimination soll nicht angewendet werden!)
  42. SELECT COUNT(*) AS COUNT
  43. FROM election
  44. WHERE winner_loser_indic = 'L'
  45. UNION
  46. SELECT COUNT(*)
  47. FROM election
  48. WHERE winner_loser_indic = 'W';
  49.  
  50. -- i) Wer hat die meisten Stimmen in einer Wahl erhalten?
  51. SELECT *
  52. FROM president p
  53.     INNER JOIN election e ON p.pres_name = e.candidate
  54. WHERE e.votes = (
  55.     SELECT MAX(votes)
  56.     FROM election
  57. );
  58.  
  59. -- j) Welcher Präsident hat nicht zweimal gewonnen?
  60. SELECT *
  61. FROM president
  62. WHERE pres_name IN (
  63.     SELECT candidate
  64.     FROM election
  65.     WHERE winner_loser_indic = 'W'
  66.     GROUP BY candidate
  67.     HAVING COUNT(candidate) <> 2
  68. );
Advertisement
Add Comment
Please, Sign In to add comment