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

Verwenden von Textschatten- und Elementschatteneffekten in CSS

Einführung in Textschatten Verwenden Sie in CSS d...

Implementierung des HTML-Gleit- und Schwebeball-Menüeffekts

CSS-Stile html,Text{ Breite: 100 %; Höhe: 100%; R...

Lösen Sie das Problem beim Ausführen von Jupyter Notebook auf dem Server

Inhaltsverzeichnis Auf dem Server läuft Jupyter N...

Implementierung der Bereitstellung eines privaten Docker-Warehouse-Registrars

Da immer mehr Docker-Images verwendet werden, mus...

js+Html zur Realisierung einer Tabellenbearbeitungsoperation

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

Kostenloses Tutorial zur Installationskonfiguration der Version MySQL 5.7.18

MySQL wird in eine Installationsversion und eine ...

jQuery realisiert den Shuttle-Box-Effekt

In diesem Artikelbeispiel wird der spezifische Co...

Vue realisiert die Palastgitterrotationslotterie

Vue implementiert die Palastgitterrotationslotter...

Erläuterung der JavaScript-Funktionssyntax

Inhaltsverzeichnis 1. Gewöhnliche Funktionen 2. P...

Allgemeine Front-End-JavaScript-Methodenkapselung

Inhaltsverzeichnis 1. Geben Sie einen Wert ein un...

Vue und React im Detail

Inhaltsverzeichnis 1. Panorama II. Hintergrund 1....