Beispiel für die Verwendung von MySQL zum Zählen der Anzahl unterschiedlicher Werte in einer Spalte

Beispiel für die Verwendung von MySQL zum Zählen der Anzahl unterschiedlicher Werte in einer Spalte

Vorwort

Die in diesem Artikel implementierte Anforderung ist eigentlich sehr verbreitet. Beispielsweise haben wir eine Benutzerquellentabelle, um den Kanal zu markieren, von dem aus sich der Benutzer registriert hat. Die Tabellenstruktur ist unten dargestellt …

Herkunft ist die Benutzerquelle und ihre Werte umfassen iPhone, Android und Web. Jetzt müssen wir die Anzahl der über diese drei Kanäle registrierten Benutzer separat zählen.

Lösung 1

SELECT-Anzahl(*)
FROM Benutzeroperationsprotokoll
WO Herkunft = "iPhone";
SELECT-Anzahl(*)
FROM Benutzeroperationsprotokoll
WO Herkunft = "Android";
SELECT-Anzahl(*)
FROM Benutzeroperationsprotokoll
WO Herkunft = 'Web';

Um die jeweiligen Mengen zu ermitteln, verwenden Sie die Where-Anweisung.

Das ist etwas zu viel Abfrage. Wenn es 10 Werte gibt, müssen Sie 10 ähnliche Anweisungen schreiben, was sehr mühsam ist.

Gibt es eine einzelne Anweisung, die dies kann? Also habe ich ein paar Informationen nachgeschaut.

Lösung 2

Wir wissen, dass mit count nicht nur die Anzahl der Zeilen gezählt werden kann, sondern auch die Anzahl der Spaltenwerte, zum Beispiel:

Zählen Sie die Anzahl der Zeilen im user_operation_log:

SELECT count(*) FROM user_operation_log

Zählen Sie die Anzahl der Werte in der Ursprungsspalte, die nicht NULL sind:

SELECT Anzahl(Ursprung) FROM Benutzeroperationsprotokoll

Wir können diese Funktion also nutzen, um die oben genannten Anforderungen zu erfüllen

Die erste Schreibweise (mit count)

WÄHLEN
 Anzahl (Ursprung = 'iPhone' oder NULL) als iPhone,
 Anzahl (Ursprung = 'Android' oder NULL) als Android,
 Anzahl (Ursprung = 'Web' oder NULL) als Web
AUS Benutzeroperationsprotokoll;

Abfrageergebnisse

Die zweite Schreibweise (mit Summe)

WÄHLEN
 Summe(wenn(Ursprung = 'iPhone', 1, 0)) AS iPhone,
 Summe(wenn(Ursprung = 'Android', 1, 0)) AS Android,
 Summe(wenn(Ursprung = 'Web', 1, 0)) AS Web
AUS Benutzeroperationsprotokoll;

Abfrageergebnisse

Die dritte Schreibweise (Summe neu schreiben)

WÄHLEN
 Summe(Herkunft = 'iPhone') AS iPhone,
 Summe(Herkunft = 'Android') AS Android,
 Summe(Herkunft = 'Web') AS Web
AUS Benutzeroperationsprotokoll;

Abfrageergebnisse

Die vierte Schreibweise (aus der Antwort des Nuggets-Benutzers Jeff)

Wählen Sie Herkunft, Anzahl (*) Num aus Benutzeroperationsprotokoll Group BY Herkunft;

Abfrageergebnisse


Bisher wurden unsere Anforderungen erfüllt.

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels Ihnen bei Ihrem Studium oder Ihrer Arbeit helfen kann. Wenn Sie Fragen haben, können Sie eine Nachricht hinterlassen. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM.

Das könnte Sie auch interessieren:
  • Detaillierte Beispiele zur Konvertierung von Zeilen in Spalten und Spalten in Zeilen in MySQL
  • Neue Felder (Spalten) zu bestehenden Tabellen in der MySQL-Datenbank hinzufügen
  • So fügen Sie Seriennummern zu Abfrageergebnissen in MySQL hinzu
  • So verwenden Sie MySQL, um die Anzahl identischer Werte in einer Spalte abzufragen
  • Gibt alle Tabellennamen, Spaltennamen und Datentyphinweise einer Datenbank in Mysql zurück
  • MySQL fügt Tabellenspalten und Einschränkungen hinzu, ändert und löscht sie usw.
  • Datenbankimplementierung der Zeilen- und Spaltenkonvertierung (MySQL-Beispiel)
  • Verwenden der dynamischen Konvertierung von Zeilen in Spalten in einer gespeicherten MySQL-Prozedur
  • MySQL-Konvertierung von Spalten in Zeilen, Methode zum Zusammenführen von Feldern (unbedingt lesen)
  • So konvertieren Sie Spaltenwerte in MySQL in Spalten
  • Beispielanalyse der von MySQL 5.7 generierten Spaltennutzung

<<:  Implementierung von JavaScript zum Herunterladen und Hochladen verknüpfter Bilder

>>:  So implementieren Sie geplante MySQL-Aufgaben zur Datensicherung unter Linux

Artikel empfehlen

IE8 verwendet den Multikompatibilitätsmodus, um Webseiten normal anzuzeigen

IE8 wird mehrere Kompatibilitätsmodi haben. Der IE...

So fügen Sie Batchdaten unter Node.js in eine MySQL-Datenbank ein

Im Projekt (nodejs) müssen mehrere Daten gleichze...

Installations- und Konfigurationstutorial von MongoDB unter Linux

MongoDB -Installation Wählen Sie die Installation...

Beispiel für eine adaptive CSS-Bildschirmgrößenimplementierung

Um eine CSS-Bildschirmgrößenanpassung zu erreiche...

Detaillierte Erklärung zur Verwendung von Titel-Tags und Absatz-Tags in XHTML

XHTML-Überschriftenübersicht Wenn wir Word-Dokume...

So zeigen Sie MySQL-Links an und löschen abnormale Links

Vorwort: Während des Betriebs und der Wartung der...

Detaillierte Erklärung der HTML-Download-Funktion

Das neue Projekt ist im Grunde abgeschlossen. Es ...

Tiefgreifendes Verständnis des Ereignisausführungsmechanismus von JavaScript

Inhaltsverzeichnis Vorwort Das Prinzip der asynch...

Detaillierte Erläuterung des Quellcodes der vue.$set()-Methode von Vue

Bei der Verwendung von Vue zum Entwickeln von Pro...

Details zu 7 Arten der Komponentenkommunikation in Vue3

Inhaltsverzeichnis 1. Kommunikationsmethode für V...

Verständnis des synchronen oder asynchronen Problems von setState in React

Inhaltsverzeichnis 1. Ist setState synchron? asyn...

4 flexible SCSS-Kompilierungsausgabestile

Vielen Leuten wird das Kompilieren erklärt, sobal...