Heim > Datenbank > Oracle > Hauptteil

Der Unterschied zwischen count1 und count* in Oracle

下次还敢
Freigeben: 2024-04-30 06:12:15
Original
584 Leute haben es durchsucht

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>
Nach dem Login kopieren

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

<code>SELECT COUNT(1) FROM students;
2</code>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!