Heim > Datenbank > MySQL-Tutorial > Wie kann ich bedingte Vorkommen in PostgreSQL effizient zählen?

Wie kann ich bedingte Vorkommen in PostgreSQL effizient zählen?

Mary-Kate Olsen
Freigeben: 2025-01-24 06:21:10
Original
395 Leute haben es durchsucht

How Can I Efficiently Count Conditional Occurrences in PostgreSQL?

PostgreSQL-Bedingungszählung: Optimierungsmethode

Beim Zählen der Vorkommen von Daten in einer Datenbanktabelle können bedingte Anweisungen langwierig erscheinen. Glücklicherweise bietet PostgreSQL eine praktische und effiziente Lösung.

FILTER-Aggregationsoptionen

Für PostgreSQL 9.4 und höher nutzen Sie die FILTER-Aggregationsoption für beste Effizienz:

<code class="language-sql">SELECT category
     , count(*) FILTER (WHERE question1 = 0) AS zero
     , count(*) FILTER (WHERE question1 = 1) AS one
     , count(*) FILTER (WHERE question1 = 2) AS two
FROM   reviews
GROUP  BY 1;</code>
Nach dem Login kopieren

Präzise Syntax

Wenn Einfachheit für Sie Priorität hat:

<code class="language-sql">SELECT category
     , count(question1 = 0 OR NULL) AS zero
     , count(question1 = 1 OR NULL) AS one
     , count(question1 = 2 OR NULL) AS two
FROM   reviews
GROUP  BY 1;</code>
Nach dem Login kopieren

Kreuztabellenabfrage

Um große Optionslisten zu verarbeiten und eine höhere Leistung zu erzielen, sollten Sie die Verwendung der Funktion crosstab() in Betracht ziehen:

<code class="language-sql">SELECT * FROM crosstab(
     'SELECT category, question1, count(*) AS ct
      FROM   reviews
      GROUP  BY 1, 2
      ORDER  BY 1, 2'
   , 'VALUES (0), (1), (2)'
   ) AS ct (category text, zero int, one int, two int);</code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich bedingte Vorkommen in PostgreSQL effizient zählen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage