


So zählen Sie aufeinanderfolgende Vorkommen in der Spalte einer Tabelle
Beim Arbeiten mit Daten in einer Tabelle kann es nützlich sein, die Anzahl zu zählen wie oft ein Wert nacheinander in einer bestimmten Spalte vorkommt. Wenn eine Tabelle beispielsweise eine Spalte mit den Namen von Mitarbeitern enthält, möchten Sie möglicherweise wissen, wie oft derselbe Mitarbeitername in einer Zeile vorkommt.
Problem
Betrachten Sie die folgende Tabelle:
create table #t (Id int, Name char) insert into #t values (1, 'A'), (2, 'A'), (3, 'B'), (4, 'B'), (5, 'B'), (6, 'B'), (7, 'C'), (8, 'B'), (9, 'B')
Das Ziel besteht darin, die Anzahl der aufeinanderfolgenden Vorkommen jedes Werts in der Spalte „Name“ zu zählen. Die gewünschte Ausgabe ist:
Name | Repetition |
---|---|
A | 2 |
B | 4 |
C | 1 |
B | 2 |
Lösung
Ein Ansatz zur Lösung dieses Problems besteht darin, das Konzept der Zeilennummern zu verwenden und dann die Differenz zwischen ihnen zu berechnen, um sie zu identifizieren aufeinanderfolgende Ereignisse. Die folgende Abfrage veranschaulicht diesen Ansatz:
select name, count(*) from (select t.*, (row_number() over (order by id) - row_number() over (partition by name order by id) ) as grp from t ) t group by grp, name;
Erklärung
Die Unterabfrage in der Abfrage:
(select t.*, (row_number() over (order by id) - row_number() over (partition by name order by id) ) as grp from t )
berechnet die Zeilennummern für jede Zeile in der 't'-Tabelle. Die Funktion row_number() weist jeder Zeile eine fortlaufende Nummer zu, während die Klausel „partition by“ dafür sorgt, dass die Zeilennummern für jeden einzelnen Wert in der Spalte „Name“ zurückgesetzt werden. Dies führt zur Spalte „grp“, die die Gruppe aufeinanderfolgender Vorkommen für jede Kombination aus „Name“ und „ID“ angibt.
Die äußere Abfrage gruppiert dann die Ergebnisse nach der Spalte „grp“ und zählt die Anzahl der Vorkommen für jede Kombination aus „grp“ und „Name“. Dies liefert das Endergebnis, das die aufeinanderfolgenden Vorkommen jedes Werts in der Spalte „Name“ zählt.
Durch die Nutzung der Differenz zwischen Zeilennummern ermittelt dieser Ansatz genau die aufeinanderfolgenden Vorkommen von Werten in der angegebenen Spalte und erzeugt Ergebnisse die gewünschte Ausgabe.
Das obige ist der detaillierte Inhalt vonWie zähle ich aufeinanderfolgende Wertvorkommen in einer Datenbankspalte?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

MySQLViewShavelimitations: 1) Sie sind supportallsqloperationen, restriktedatamanipulation ThroughviewswithjoinSuBqueries.2) Sie können sich angesehen, insbesondere mit der kompetenten Formata -Ansichten, die docrexQuqueriesorlargedatasets angezeigt werden

OrteSermanagementinmysqlisicialforenHancingSecurityAnsuringEffizienceDatabaseoperation.1) Usecreateutertoaddusers, spezifizierende Connections mit 'localhost'or@'%'.

Mysqldoes nicht imposeahardlimitontriggers, aber praktische Faktorendeterminetheireffectiveuse: 1) serverconfigurationImpactstriggermanagement;

Ja, es ist safetostoreblobdatainmysql, butconsiderthesefactors: 1) StorageSpace: BloBScanconSignificantantspace, potenziellincreaseingCostsandSlowingPerformance.2) Leistung: größereRowsisDuetoBoBsMayslowdownquers.3) BackupandRecovery:

Das Hinzufügen von MySQL -Benutzern über die PHP -Weboberfläche kann MySQLI -Erweiterungen verwenden. Die Schritte lauten wie folgt: 1. Verbinden Sie eine Verbindung zur MySQL -Datenbank und verwenden Sie die MySQLI -Erweiterung. 2. Erstellen Sie einen Benutzer, verwenden Sie die Anweisung createUser und verwenden Sie die Funktion password (), um das Kennwort zu verschlüsseln. 3.. Verhindern Sie die SQL -Injektion und verwenden Sie die Funktion mySQLI_REAL_ESCAPE_STRING (), um die Benutzereingabe zu verarbeiten. V.

Mysql'SbloBissableForstoringBinaryDatawithinarelationalDatabase, whilenosqloptionslikemongodb, Redis und CassandraofferFlexible, skalablessolutionenfornernstrukturierteData.blobissimplerbutcanslowdownscalgedlargedDataTTersClaTTersScalgedlargedDataTersClaTTersScalgedlargedDataTersClaTTERSCHITHLARGEGEGEBEN

ToaddauserinMysql, Verwendung: createUser'username '@' host'identifiedBy'password '; hier'Showtodoitesecurely: 1) choosethehostCrefulyTocon TrolAccess.2) setResourcelimits withOptionslikemax_queries_per_hour.3) UsSeStong, Uniquepasswords.4) Enforcesl/tlsConnectionsWith

ToavoidCommonMistakeswithStringDatatypesinmysql, Verständnisstringtypenuances, ChoosetherightType, und ManageCodingandCollationsetingseffekt.1) UsecharforFixed-Länge-Strings, Varcharforvariable-Länge und Ventionlargerdata.2) -Tetcorrectaracters und Ventionlargerdata.2)


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SAP NetWeaver Server-Adapter für Eclipse
Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHPStorm Mac-Version
Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool
