Heim  >  Artikel  >  Datenbank  >  Der Unterschied zwischen count1 und count* in Oracle

Der Unterschied zwischen count1 und count* in Oracle

下次还敢
下次还敢Original
2024-04-30 06:12:15661Durchsuche

Der Unterschied zwischen COUNT(1) und COUNT(*) in Oracle ist: COUNT(1) ignoriert Nullwerte und zählt nur nicht leere Zeilen; COUNT(*) zählt alle Zeilen, einschließlich Nullwerte, die funktionieren Wählen hängt davon ab: ob Es gibt Nullwerte, Prioritäten für Leistung oder Konsistenz.

Der Unterschied zwischen count1 und count* in Oracle

Der Unterschied zwischen COUNT(1) und COUNT(*) in Oracle

In Oracle sind COUNT(1) und COUNT(*) beide Aggregatfunktionen, die zur Berechnung der Anzahl der Datensätze in einer Tabelle verwendet werden , aber es gibt einen subtilen Unterschied zwischen den beiden.

COUNT(1)

  • Nur Zeilen mit Nicht-Null-Werten zählen.
  • Es verhindert falsches Zählen, wenn die Tabelle Nullwerte enthält.
  • etwas schneller ausführen als COUNT(*), da Nullwerte ignoriert werden.

COUNT(*)

  • Zählt alle Zeilen, einschließlich derjenigen mit Nullwerten.
  • Es wird eine genaue Zählung zurückgegeben, auch wenn die Tabelle Nullwerte enthält.
  • Da es Nullwerte enthält, wird es möglicherweise etwas langsamer als COUNT(1) ausgeführt.

Welches soll ich wählen?

Die Wahl von COUNT(1) oder COUNT(*) hängt von den folgenden Faktoren ab:

  • Vorhandensein von Nullwerten: Wenn Nullwerte in der Tabelle möglich sind, verwenden Sie COUNT(1), um falsche Zählungen zu vermeiden.
  • Leistung: Wenn die Geschwindigkeit entscheidend ist und Sie sicher sind, dass die Tabelle keine Nullwerte enthält, können Sie COUNT(1) verwenden.
  • Konsistenz: Wenn Sie eine konsistente Anzahl über alle Zeilen, einschließlich Nullen, wünschen, sollten Sie COUNT(*) verwenden.

Beispiel

Angenommen, es gibt eine Tabelle mit dem Namen students, die die folgenden Daten enthält:

<code>| id | name | age |
|---|---|---|
| 1 | John | 20 |
| 2 | NULL | 25 |
| 3 | Mary | 22 |</code>

Wenn Sie diese Tabelle mit COUNT(1) abfragen, werden die folgenden Ergebnisse zurückgegeben:

<code>SELECT COUNT(1) FROM students;
2</code>

Dies liegt daran, dass COUNT( 1) ignoriert NULL-Werte.

Wenn Sie diese Tabelle mit COUNT(*) abfragen, werden die folgenden Ergebnisse zurückgegeben:

<code>SELECT COUNT(*) FROM students;
3</code>

Das liegt daran, dass COUNT(*) NULL-Werte enthält.

Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen count1 und count* in Oracle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn