# SQL COUNT() Tutorial

Mit SQL COUNT() können Sie abfragen, wie viele Zeilen sich innerhalb einer Tabelle befinden. Durch die WHERE-Bedingung ist es außerdem möglich, die Such- und Ausgabekriterien noch weiter zu spezifizieren.

## Was ist SQL COUNT()?

Es gibt in der [Structured Query Language](https://www.ionos.de/digitalguide/server/knowhow/was-ist-sql/) zahlreiche Funktionen, mit denen Sie einfache mathematische Aufgaben durchführen können. Neben [SQL AVG()](https://www.ionos.de/digitalguide/server/konfiguration/sql-avg/) und SUM() ist insbesondere SQL COUNT() sehr nützlich. Die Funktion gibt Ihnen die **Anzahl der Zeilen aus, die einem bestimmten Kriterium entsprechen**. Das erlaubt es Ihnen, Ihre Tabelle nach eigenen Anforderungen zu filtern und erhöht so die Übersichtlichkeit. SQL COUNT() wird mit dem [SQL-Befehl](https://www.ionos.de/digitalguide/server/konfiguration/sql-befehle/) SELECT verwendet. Durch verschiedene optionale Parameter können Sie die Funktion noch genauer instruieren. Einige mögliche Beispiele dafür zeigen wir Ihnen im Folgenden.

## Die Syntax der Funktion

Grundsätzlich lohnt sich zunächst allerdings ein Blick auf die Syntax und generelle Funktionsweise von SQL COUNT(). Diese ist in der Standardvariante nur zwei Zeilen lang und sieht so aus:

```sql
SELECT COUNT(*)
FROM tabelle;
```

Es ist jedoch häufig sinnvoll, eine `WHERE`-Bedingung einzubauen, um die Ausgabe zu spezifizieren. In diesem Fall wird die Funktion ein wenig länger:

```sql
SELECT COUNT(*)
FROM tabelle
WHERE bedingung;
```

## Beispiel für die Funktionsweise

Um die Möglichkeiten zu veranschaulichen, die sich Ihnen durch SQL COUNT() bieten, erstellen wir eine beispielhafte Tabelle namens `Kundenliste`. Diese umfasst Angaben zur Kundennummer, den Namen der Kundin oder des Kunden, deren oder dessen Standort, die Anzahl der bestellten Artikel und die investierte Summe in Euro. Sie sieht so aus:

<table>
  <thead>
    <tr>
      <th><strong>Kundennummer</strong></th>
      <th><strong>Name</strong></th>
      <th><strong>Standort</strong></th>
      <th><strong>Artikel</strong></th>
      <th><strong>Gesamtbetrag</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1427</td>
      <td>Schmidt</td>
      <td>Berlin</td>
      <td>14</td>
      <td>634</td>
    </tr>
    <tr>
      <td>1377</td>
      <td>Schulz</td>
      <td>Hamburg</td>
      <td>9</td>
      <td>220</td>
    </tr>
    <tr>
      <td>1212</td>
      <td>Peters</td>
      <td>Hamburg</td>
      <td>15</td>
      <td>619</td>
    </tr>
    <tr>
      <td>1431</td>
      <td>Müller</td>
      <td>München</td>
      <td>22</td>
      <td>912</td>
    </tr>
    <tr>
      <td>1118</td>
      <td>Becker</td>
      <td>NULL</td>
      <td>10</td>
      <td>312</td>
    </tr>
  </tbody>
</table>

Wenden wir nun die Basisvariante der Funktion auf diese Tabelle an, ergibt sich folgender Code:

```sql
SELECT COUNT(*)
FROM Kundenliste;
```

Als Ausgabe erhalten Sie den Wert `5`, da Ihre Tabelle fünf Zeilen enthält.

## Abfrage der Spalten spezifizieren

Durch das Sternchen hinter `COUNT` weisen Sie das System an, ausnahmslos alle Zeilen und Felder zu berücksichtigen. Es ist aber auch möglich, die Anfrage lediglich auf bestimmte Spalten zu reduzieren. In diesem Fall werden **NULL-Werte nicht berücksichtigt**. Wenn wir also die Anzahl der Zeilen in `Standort` überprüfen, werden wir ein anderes Gesamtergebnis erhalten:

```sql
SELECT COUNT(Standort)
FROM Kundenliste;
```

Da für den Kunden oder die Kundin `Becker` kein Standort hinterlegt wurde, erhalten wir nun das Ergebnis `4`.

## Die Kombination mit WHERE

Im nächsten Schritt nutzen wir die Funktion mit einer `WHERE`-Bedingung. Dies hilft uns, die Einträge **nach unseren Vorstellungen zu filtern**. Wenn wir also beispielsweise lediglich überprüfen möchten, wie viele Kundinnen und Kunden aus Hamburg kommen, fügen wir diese Bedingung ein:

```sql
SELECT COUNT(Standort)
FROM Kundenliste
WHERE Standort = 'Hamburg';
```

Als Ergebnis erhalten wir nun die `2`.

Ähnlich funktioniert SQL COUNT(), wenn wir lediglich Kundinnen und Kunden berücksichtigen möchten, die für mindestens 400 Euro eingekauft haben:

```sql
SELECT COUNT(Standort)
FROM Kundenliste
WHERE Gesamtbetrag > 400;
```

Auf drei Kundinnen und Kunden trifft dies zu.

## Doppelte Einträge ausschließen

Mit dem Keyword `DISTINCT` können Sie hingegen **doppelte Einträge ausschließen**. Wenn Sie also wissen möchten, aus wie vielen verschiedenen Städten Ihre Kundinnen und Kunden kommen, nutzen Sie den folgenden Code:

```sql
SELECT COUNT(DISTINCT Standort)
FROM Kundenliste;
```

Das Ergebnis lautet in diesem Fall `3`. Die beiden Einträge für Hamburg wurden nur einmal gezählt und da das Feld für den Kunden oder die Kundin `Becker` NULL ist, fällt dieses ebenfalls aus der Wertung.

## Die Funktion mit einem Alias

Wenn Sie die Ausgabe zusätzlich betiteln möchten, können Sie das Keyword „AS“ verwenden (mehr zu [SQL AS](https://www.ionos.de/digitalguide/server/konfiguration/sql-aliases/) in unserem Ratgeber). Dieses **erstellt einen Alias für die Dauer der Abfrage**. Für unser Beispiel könnte dies ein möglicher Alias sein:

```sql
SELECT COUNT(*) AS [Anzahl der Einträge]
FROM Kundenliste;
```

Die Ausgabe liest sich dann folgendermaßen:

```sql
Anzahl der Einträge
5
```

Tipp Wählen Sie das Datenbankmodell, das wirklich zu Ihnen passt: Mit [SQL-Server-Hosting](https://www.ionos.de/cloud/sql-server-hosting "SQL-Server-Hosting von IONOS") von IONOS nutzen Sie nach Wunsch MSSQL, MySQL oder MariaDB und profitieren von einer Top-Performance, einer starken Sicherheitsarchitektur und persönlicher Beratung.


This is a markdown version of: [https://www.ionos.de/digitalguide/server/konfiguration/sql-count/](https://www.ionos.de/digitalguide/server/konfiguration/sql-count/) for AI/LLM consumption.