Führen Sie Datenstatistiken für verschiedene Werte desselben Felds in SQL durch

Führen Sie Datenstatistiken für verschiedene Werte desselben Felds in SQL durch

Anwendungsszenario: Es ist notwendig, die Anzahl der Siegel in unterschiedlichen Zuständen entsprechend den unterschiedlichen Zuständen der Siegel zu zählen.

Bei meiner ersten Suche auf Baidu habe ich zwar unterschiedliche Antworten gefunden, die Schuld kann ich mir allerdings nur selbst geben, weil ich die SQL-Syntax nicht gut genug verstanden und es versäumt habe, sie auszuschreiben, was zu folgender fehlerhafter Schreibweise geführt hat.

Wählen Sie b.corporateOrgName, b.corporateOrgGuid companyId,
Anzahl (Fall, wenn bc.ftype nicht in (1,2), dann 1, sonst 0, Ende) Gesamt,
zählen (Fall wenn bc.ftype in (3,4,5) dann 1 sonst 0 Ende) usetotal,
zählen (Fall wenn bc.ftype = 6, dann 1, sonst 0, Ende) Gesamtsumme speichern,
Anzahl (Fall wenn bc.ftype = 7, dann 1, sonst 0, Ende) returnTotal
von B_seal_cycle bc
beitreten B_seal b
auf bc.sealId = b.id
wobei b.corporateOrgName wie '%%' ist.
Gruppieren nach b.corporateOrgName,b.corporateOrgGuid

Die Logik ist nachvollziehbar, aber ich kann einfach nicht die ideale Schnittstelle finden, sodass alle geschriebenen statistischen Daten gleich sind. Korrekte Rechtschreibung nach der Änderung

Wählen Sie b.corporateOrgName, b.corporateOrgGuid companyId,
Anzahl (Fall, wenn bc.ftype nicht in (1,2), dann 1 Ende) insgesamt,
zählen (Fall wenn bc.ftype in (3,4,5) dann 1 Ende) usetotal,
zählen (Fall wenn bc.ftype = 6, dann 1 Ende) Gesamtsumme speichern,
Anzahl (Fall wenn bc.ftype = 7, dann 1 Ende) returnTotal
von B_seal_cycle bc
beitreten B_seal b
auf bc.sealId = b.id
wobei b.corporateOrgName wie '%%' ist.
Gruppieren nach b.corporateOrgName,b.corporateOrgGuid

Sehen Sie den Unterschied? Durch Entfernen der sonstigen 0 wird das richtige Ergebnis erzielt.

Aufgetretene Probleme

1. Die Interpretation der Groß-/Kleinschreibung bei falscher Syntax.

Nach dem Hinzufügen von else ist das Ergebnis immer 1 oder 0.

2. Die Zählfunktion zählt, ob es 1 oder 0 ist.

3. Nach dem Hinzufügen von else 0 können Statistiken mit der Summenfunktion erstellt werden.

Sie können auch schreiben

Wählen Sie b.corporateOrgName, b.corporateOrgGuid companyId,
Summe (Fall wenn bc.ftype nicht in (1,2) ist, dann 1, sonst 0, Ende) Gesamt,
Summe (Fall wenn bc.ftype in (3,4,5) dann 1 sonst 0 Ende) usetotal,
Summe (Fall wenn bc.ftype = 6, dann 1, sonst 0, Ende) Gesamtsumme speichern,
Summe (Fall wenn bc.ftype = 7, dann 1, sonst 0, Ende) returnTotal
von B_seal_cycle bc
beitreten B_seal b
auf bc.sealId = b.id
wobei b.corporateOrgName wie '%%' ist.
Gruppieren nach b.corporateOrgName,b.corporateOrgGuid

Wenn Sie Fragen oder bessere Schreibmöglichkeiten haben, hinterlassen Sie bitte eine Nachricht.

Zusatzwissen: Was ist der Unterschied zwischen der Ausführung der Anweisungen DESC und DESCRIBE in der SQL-Sprache?

DESCRIBE TABLE wird verwendet, um alle Spalten in der angegebenen Tabelle oder Ansicht aufzulisten.

DESCRIBE INDEX FOR TABLE wird verwendet, um alle Indizes der angegebenen Tabelle aufzulisten.

Daher wird DESCRIBE verwendet, um Datenstrukturinformationen anzuzeigen;

Desc steht für Descendant und dient dazu, die Ergebnisse bei Abfragen in absteigender Reihenfolge zu sortieren.

DESCRIBE ist eine Abkürzung für SHOW COLUMNS FROM.

DESCRIBE liefert Informationen zu den Spalten einer Tabelle. col_name kann ein Spaltenname oder eine Zeichenfolge sein, die die SQL-Platzhalterzeichen „%“ und „_“ enthält. Es ist nicht erforderlich, die Zeichenfolge in Anführungszeichen zu setzen.

1. Der Befehl „describe“ dient zum Anzeigen detaillierter Entwurfsinformationen einer bestimmten Tabelle

Um beispielsweise die Designinformationen der Gästebuchtabelle anzuzeigen, können Sie Folgendes verwenden:

Gästebuch beschreiben ol_user Benutzer-ID beschreiben

2. Sie können die Spaltennamen der Tabellen in der Datenbank über "show comnus" anzeigen.

Es gibt zwei Möglichkeiten, es zu verwenden:

Spalten vom Tabellennamen aus dem Datenbanknamen anzeigen

oder:

Spalten aus Datenbankname.Tabellenname anzeigen

3. Verwenden Sie den Befehl „describe“, um bestimmte Spalteninformationen abzufragen

Beschreiben Sie die Gästebuch-ID, um die Spalteninformationen des ID-Felds im Gästebuch abzufragen

{BESCHREIBEN | 
BESCHREIBUNG
} Tabellenname [Spaltenname | wild]

DESCRIBE ist eine Abkürzung für SHOW COLUMNS FROM.

DESCRIBE liefert Informationen zu den Spalten einer Tabelle. col_name kann ein Spaltenname oder eine Zeichenfolge sein, die die SQL-Platzhalterzeichen „%“ und „_“ enthält. Es ist nicht erforderlich, die Zeichenfolge in Anführungszeichen zu setzen.

MySQL> 
Beschreibung
ol_user Benutzername\G

4. Bestimmen Sie, ob ein Feld vorhanden ist

mysql_connect(
„lokaler Host“  
,   
'Wurzel'  
,   
'Wurzel'   
);
   
mysql_select_db(   
'Demo'   
); 
$test = mysql_query(
„Beschreiben Sie zuerst cdb_posts“
); 
: Wenn Sie einen Array-Fetch in einem Array ausführen, wird die Abfrage ausgeführt.

$test[0] gibt den Namen des Feldes zurück. Wenn ich beispielsweise das erste Feld abfragen möchte, ist der zurückgegebene Wert first.

Wenn dieses Feld nicht existiert, wird NULL zurückgegeben. So können Sie feststellen, ob ein Feld vorhanden ist.

Der obige Artikel zum Durchführen von Datenstatistikoperationen für verschiedene Werte desselben Felds in SQL ist der gesamte Inhalt, den der Herausgeber mit Ihnen teilt. Ich hoffe, er kann Ihnen als Referenz dienen, und ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen.

Das könnte Sie auch interessieren:
  • So aktualisieren Sie dasselbe Feld mehrerer Datensätze in MySQL stapelweise auf unterschiedliche Werte
  • MySQL SQL-Anweisung zum Suchen doppelter Daten basierend auf einem oder mehreren Feldern
  • So fragen Sie doppelte Daten in einer MySQL-Tabelle ab

<<:  Mehrere Möglichkeiten zum Herunterfahren des Hyper-V-Dienstes unter Windows 10

>>:  So schreiben Sie hochwertigen JavaScript-Code

Artikel empfehlen

Lösung für „Keine Eingabedatei angegeben“ in nginx+php

Heute ist in meiner lokalen Entwicklungsumgebung ...

Führen Sie die Initialisierungs-SQL aus, wenn Docker MySQL startet

1. Ziehen Sie das Mysql-Image docker pull mysql:5...

Hinweise zur Verwendung von Textarea

Warum speziell Textbereich erwähnen? Denn der Text...

Einfacher CSS-Textanimationseffekt

Ergebnisse erzielen Implementierungscode html <...

Detaillierte Beschreibung des MySQL-Ersetzens in der Verwendung

Die Ersetzungsanweisung ähnelt im Allgemeinen der...

Docker-Bereitstellungs- und Installationsschritte für Jenkins

Zuerst benötigen wir einen Server mit installiert...

Javascript implementiert einfache Navigationsleiste

In diesem Artikel wird der spezifische Code von J...

So zeichnen Sie eine vertikale Linie zwischen zwei Div-Tags in HTML

Als ich kürzlich eine Schnittstelle zeichnete, st...

Erfahren Sie, wie Sie Docker unter Windows 10 Home Edition installieren.

Als ich die Bücher über Redis und Spring Cloud Al...

JavaScript Canvas realisiert dynamische Punkt- und Linieneffekte

In diesem Artikel wird der spezifische Code für J...

Detailliertes Tutorial zur Installation von MariaDB auf CentOS 8

Das Datenbankverwaltungssystem MariaDB ist ein Zw...