T-SQL Ninja #17

Running Totals

Was sind Running Totals? Mit “Running Total” oder “laufender Summe” ist ein Szenario gemeint, in dem in jeder Zeile die Summe der Werte einer bestimmten Spalte der vorangegangenen Zeilen steht. Ein gutes Beispiel dafür sind Punkte verschiedener Spiele, die aufaddiert werden. Wichtig für eine laufende Summe ist dabei natürlich, dass die Zeilen in einer eindeutigen […]

T-SQL Ninja #16

UPDATE FROM

Was ist UPDATE FROM? Wenn Ihr Werte in Tabellen UPDATEn möchtet, dann sieht ein Skript oftmals so aus, dass Ihr einer Spalte einen neuen Wert (der sich auch aus anderen Werten ableiten kann) zuweist. Doch wie funktioniert das, wenn die anderen Werte aus einer anderen Tabelle kommen? Dann braucht ihr ein UPDATE FROM. Wie könnt ihr mit […]

T-SQL Ninja #15

MERGE

Was ist MERGE? Über Merge-Statements könnte man beinahe ein Buch schreiben. Doch als echte Ninjas möchten wir das Thema mit dem Katana fein säuberlich zerteilen. Ein MERGE Statement führt in einem Statement Einfüge-, Lösch- oder Update-Operationen in einer Tabelle aus. Es kann beispielsweise dafür verwendet werden, Tabellen zu synchronisieren, also die Inhalte einer Tabelle falls […]

T-SQL Ninja #14

GROUP BY … HAVING

Was ist GROUP BY? GROUP BY und HAVING gehören zu den absoluten Grundlagen der SQL Syntax, doch jeder Ninja sollte auch die Grundlagen beherrschen und sich nicht nur mit Jutsu beschäftigen, daher wollen wir uns das Konstrukt einmal ansehen. Eine Abfrage, die Daten aggregiert, indem sie beispielsweise eine Summe bildet, muss nicht immer die Summe über alle Zeilen […]

T-SQL Ninja #13

DENSE_RANK

Was ist DENSE_RANK? In den letzten beiden Wochen haben wir euch bereits mit dem Durchnummerieren von Zeilen der Ergebnismenge mit den ROW_NUMBER und RANK-Funktionen „Freude“ bereitet. Damit wollen wir auch heute noch fortfahren. Die DENSE_RANK-Funktion ist, wie es der Name schon andeutet, eng mit der RANK-Funktion aus der letzten Woche verbunden. Was ist also der Unterschied? Das ist relativ einfach […]

T-SQL Ninja #12

RANK

Was tut RANK? Wie schon die in der letzten Woche vorgestellte ROW_NUMBER Funktion, ist auch RANK eine Window Function, also eine Funktion, die die Daten sortiert in sogenannten „Fenstern“ oder „Partitionen“ abarbeitet. Die Sortierung und die Partitionen definiert ihr, indem ihr nach dem Funktionsaufruf die Schlüsselworte ORDER BY und PARTITION BY verwendet. Die RANK-Funktion nummeriert dann alle Zeilen in der Ergebnismenge, anfangend […]

T-SQL Ninja #11

ROW_NUMBER

Was ist ROW_NUMBER? Die ROW_NUMBER Funktion ist eine Window Function, also eine Funktion, die die Daten sortiert in sogenannten „Fenstern“ oder „Partitionen“ abarbeitet. Die Sortierung und die Partitionen definiert ihr, indem ihr nach dem Funktionsaufruf die Schlüsselworte ORDER BY und PARTITION BY verwendet. Die ROW_NUMBER-Funktion nummeriert dann alle Zeilen in der Ergebnismenge, anfangend bei 1 […]

T-SQL Ninja #10

STATISTICS TIME

Was ist STATISTICS TIME? In der letzten Woche hattet Ihr Statistics IO kennengelernt, ein Hilfsmittel, das euch verrät, wie viele Daten eine Abfrage von der Festplatte lesen muss, um eine Abfrage zu beantworten. Wie unterscheidet sich nun Statistics Time von Statistics IO? Während Statistics IO die Festplattenzugriffe protokolliert, liefert Statistics Time die benötigte CPU Zeit […]

T-SQL Ninja #09

STATISTICS IO

Was tut STATISTICS IO? „Duuuhuuu, Ninja, ich hab da so ne Abfrage, die ist total langsam, gestern war das noch nicht so, ganz sicher“. Mit Anfragen wie dieser wird jeder Ninja früher oder später überrascht und das beweist, dass auch die anderen User gewisse Ninja-Skills haben, denn auf diese Situation vorbereitet ist man mit Sicherheit […]

T-SQL Ninja #08

sp_MSforeachtable

Was ist sp_MSforeachtable? Die gespeicherte Prozedur sp_MSforeachtable gehört zu den Systemprozeduren, die im SQL Server definiert sind. Ihr findet sie, wenn ihr euch mit dem Management Studio oder dem Data Studio mit einem Server verbindet und dann unter „System Databases“ in der „master“-Datenbank unter „Programmability“ in die „System Stored Procedures“ schaut. Dort findet ihr einen ganzen Haufen […]