Rechnen mit SQL

In der Cafeteria

Oh, hey, Tiffany!! Hey, kann ich mich zu dir setzen?

Ich wollte gerade -

(setzt sich) Tiffany, Mensch, du, ich glaube, ich habe einen richtig fetten Terroristen an der Angel! Den hab' ich so was aus der Datenbank gefischt, ich …

Könntest du in deiner Datenbank vielleicht was nachschauen für mich?

Vielleicht später, als Terroristenjäger habe ich momentan nicht so viel -

Smittiiiii - ich brauche gaaaaanz dringend eine Liste mit den BMIs von einigen Bewerbern. Für die Krankenkassen, verstehst du? (klimpert mit den Augen)

Für die Krankenkassen?

Klar, hoher BMI = höhere Beiträge. BMI, das ist der Body-Mass-Inzest. Höher = übergewichtiger = größeres Risiko für Krankenhausaufenthalte und so. Weiß natürlich keiner, dass das so läuft, aber so ist das nunmal.

Echt? Ich bin nicht sicher, ob ich das gut finde.

Komm schoooon - das machst du ganz fix, und dann lade ich dich auf einen Kaffee ein, na?

Wow, das wäre ja echt was! Aber das ist kompliziert, ich weiß nicht, wie schnell …

Du schaffst das, du bist der Schlauste von allen! In einer halben Stunde wieder hier? (ab)

Oh verdammt … Muss ich schon wieder Kowalsky anrufen …

*tuuut … *tuuut

Lass mich raten. Daskalov ist ein Terrorist, weil er innerhalb eines Monats 10 Packungen Cornflakes gekauft hat. Richtig?

Sei doch nicht so, er ist wirklich …

Also. Schnell. Worum geht's diesmal?

Ich brauche den BMI aus der Datenbank. Aber da steht er nicht drin.

Natürlich nicht. Den kannst du ja auch berechnen: Gewicht(kg) / Körpergröße(cm)2

Ach - man kann das ausrechnen?

Klar. Ich leg dir einen Zettel auf die Tastatur, da steht alles drauf. Und jetzt muss ich weiterarbeiten. *klack

(ab ins Büro zu Kowalskys Zettel)

Einfaches Rechnen mit SQL

Du kannst die Grundrechenarten direkt in deine Abfrage schreiben. Stell dir vor, du hast eine Liste aller Personen und ihr monatliches Einkommen:

SELECT p.nachname,
p.monatlichesEinkommen AS `monatliches Einkommen`
FROM personen p
ORDER BY p.monatlichesEinkommen DESC;

Jetzt willst du aber nicht das monatliche Einkommen, sondern das Jahreseinkommen. Also multiplizierst du einfach das Monatseinkommen mit 12:

SELECT p.nachname,
p.monatlichesEinkommen AS `monatliches Einkommen`,
p.monatlichesEinkommen * 12 AS `Gehalt pro Jahr`
FROM personen p
ORDER BY p.monatlichesEinkommen DESC;

Das Alias kannst du natürlich weiterverwenden, z. B. für die Sortierung:

SELECT p.nachname,
p.monatlichesEinkommen AS `monatliches Einkommen`,
p.monatlichesEinkommen * 12 AS `Gehalt pro Jahr`
FROM personen p
ORDER BY `Gehalt pro Jahr` DESC;

Und wenn es dich nervt, dass manchmal viele Nachkommastellen rauskommen, kannst du fürs Erste einfach mal runden mit round(zahl, anzahlDezimalen):

SELECT p.nachname,
round(p.monatlichesEinkommen * 12, 2) AS `Gehalt pro Jahr`
FROM personen p
ORDER BY `Gehalt pro Jahr` DESC;

Und entsprechend kannst du bspw. den Body-Mass-Index aus Gewicht und Körpergröße errechnen:

SELECT p.nachname,
p.gewicht / (p.koerpergroesse/100 * p.koerpergroesse/100) AS BMIFROM personen p
ORDER BY BMI DESC;

Nochmal im Video erklären, bitte

Ah ja … Und das AS schreibt er manchmal vor das Alias, dass es besser lesbar ist … Verstehe … Probiere ich gleich mal aus …

kkk

sss

(under construction)

tiffany: hat so viele bewerber, will von allen wissen:

  • bmi: gewicht / ( körpergröße cm * körpergröße (/100)) von bestimmten personen
  • durchschnittlicher bmi von allen (avg (berechnung))
  • eine person (alle?): wie lange ist er gesessen: anzahl straftaten * strafmass
  • wie viel geld hat jemand für lebensmittel ausgegeben: stueckzahl * preis where warentyp = lebensmittel 

kapoor: für die analyse

  • alle bürger: jahresverdienst monatliches einkommen * 12
  • alle bürger. Jahresverdienst summiert (bruttoeinkommen ganz maulwurfstadt) eink * 12 = BIP (evtl. noch durch anzahl der leute teilen = durchschnitt)

schwer (wg. dreisatz):

kapoor:

  • will wissen, wie viel sachen hier kosten "alles so expensive"
  • einzelne waren: wie viel kostet das kilo emmentaler (wird verkaufseinheit gramm verkauft: preis durch verkaufseinheitmenge * 1000), wie viel kostet ein spülmashcinen tab, wie viel kostet ein rolle klopapier, wie viel ein kilo lyonerwurst .