Gruppieren nach Monat in MySQL

Preet Sanghavi 3 Januar 2023
Gruppieren nach Monat in MySQL

In diesem Tutorial lernen wir, wie man Werte in einer MySQL-Datenbank nach Monat gruppiert.

Unternehmen und Organisationen müssen Benutzer- oder Kundendaten basierend auf ihren Kauf- oder Nutzungstrends in Monaten finden. Ein bestimmtes Unternehmen kann aufschlussreiche Daten ableiten, wenn es die optimalen Monate erkennt, um das Geschäft anzukurbeln, und MySQL unterstützt uns bei dieser Aufgabe.

MySQL stellt uns die Funktion date_format() zur Verfügung, die zwei Hauptwerte enthält. Der erste ist der betrachtete Spaltenname und der zweite der Zeitraum für die Gruppierung.

Sobald unsere Funktion eingerichtet ist, können wir verschiedene Zeiträume mit der GROUP BY-Klausel in MySQL gruppieren. Die Syntax dieser Operation ist wie folgt.

select date_format(date_column, '%M'),sum(any_other_column)
from name_of_the_table
group by date_format(date_column, '%M');

Diese Syntax geht davon aus, dass wir Werte von any_other_column nach Monat gruppieren möchten. Daher liefert es die Summe einer bestimmten Spalte für jeden Monat in unserer Tabelle.

Lassen Sie uns diese Methode in Aktion sehen.

Aber bevor wir beginnen, lassen Sie uns einen Dummy-Datensatz erstellen, indem wir eine Tabelle student_semester_date mit ein paar Zeilen erstellen.

-- create the table student_semester_date
CREATE TABLE student_semester_date(
  stu_id int,
  stu_date date, 
  stu_marks int
);

Lassen Sie uns dann mit der folgenden Abfrage einige Zeilen in diese Tabelle einfügen.

-- insert rows in the table student_semester_date
insert into student_semester_date(stu_id,stu_date,stu_marks)
     values(1,'2020-10-01',150),
     (2,'2020-10-10',100),
     (3,'2020-11-05',250),
     (4,'2020-11-15',150),
     (5,'2020-12-01',350),
     (6,'2020-12-21',250);

Die beiden obigen Abfragen erstellen eine Tabelle mit Zeilen mit den Vor- und Nachnamen der Schüler.

SELECT * FROM student_semester_date;

Ausgabe:

stu_id	stu_date	stu_marks
1		2020-10-01	150
2		2020-10-10	100
3		2020-11-05	250
4		2020-11-15	150
5		2020-12-01	350
6		2020-12-21	250

Versuchen wir, die Noten verschiedener Studenten anhand der Monate aus der Spalte stu_date zu gruppieren. Es würde im Wesentlichen bedeuten, die Gesamtnoten für jeden Monat in unserer Tabelle student_semester_date zu zählen.

Gruppieren nach Monat in MySQL

Wie wir die obige Syntax gesehen haben, können wir in unserer Tabelle student_semester_date mit Hilfe der folgenden Abfrage Gruppierungsmarkierungen nach Monaten durchführen.

select date_format(stu_date, '%M') as Month,sum(stu_marks) as total_marks
from student_semester_date
group by date_format(stu_date, '%M');

Der oben genannte Code gibt die Gesamtpunktzahl für jeden Monat in der Tabelle student_semester_date zurück.

Das würde bedeuten, dass wir für November 400 hätten, da es in unserer Tabelle zwei Einträge für November mit den Noten 250 und 150 gibt (250 + 150 = 400). Die Ausgabe der oben genannten Abfrage sieht wie folgt aus.

Month       total_marks
October		250
November	400
December	600
Hinweis
Wir verwenden die Alias Month und total_marks im oben genannten Code zur besseren Lesbarkeit mit dem Schlüsselwort AS in MySQL.

Mit Hilfe der Funktion date format() und der Anweisung group by können wir also Werte effizient nach Monat in einer bestimmten Tabelle in MySQL gruppieren.

Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub

Verwandter Artikel - MySQL Query