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
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.