Heim  >  Artikel  >  Datenbank  >  Mit welcher Methode werden Statistiken im MySQL-Datumsformat aggregiert?

Mit welcher Methode werden Statistiken im MySQL-Datumsformat aggregiert?

WBOY
WBOYnach vorne
2023-05-31 23:04:481133Durchsuche

    Einführung

    Zeit und Datum sind häufig verwendete Gruppierungsbedingungen und werden häufig in der tatsächlichen Entwicklung verwendet, um Datenstatistiken zu erleichtern. In MySQL können wir die Datumsformatierungsfunktion verwenden, um das Datum in eine Zeichenfolge in einem bestimmten Format umzuwandeln und dann Gruppenstatistiken entsprechend der erforderlichen Zeitgranularität durchzuführen.

    Vorbereitung

    Bevor wir beginnen, müssen wir eine Testdatentabelle vorbereiten und einige Daten einfügen, um unsere nachfolgenden Experimente und Tests zu erleichtern.

    CREATE TABLE `test` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `name` varchar(50) DEFAULT NULL,
      `created_at` datetime NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
    INSERT INTO `test` (`name`, `created_at`) VALUES
    ('test1', '2022-01-01 00:00:00'),
    ('test2', '2022-01-02 00:00:00'),
    ('test3', '2022-01-02 12:00:00'),
    ('test4', '2022-01-03 00:00:00'),
    ('test5', '2022-01-07 00:00:00'),
    ('test6', '2022-01-08 00:00:00'),
    ('test7', '2022-01-09 00:00:00'),
    ('test8', '2022-01-10 00:00:00'),
    ('test9', '2022-01-14 00:00:00'),
    ('test10', '2022-01-15 00:00:00'),
    ('test11', '2022-01-16 00:00:00'),
    ('test12', '2022-01-17 00:00:00'),
    ('test13', '2022-02-01 00:00:00'),
    ('test14', '2022-02-02 00:00:00'),
    ('test15', '2022-02-03 00:00:00'),
    ('test16', '2022-03-01 00:00:00'),
    ('test17', '2022-03-02 00:00:00'),
    ('test18', '2022-03-03 00:00:00'),
    ('test19', '2022-04-01 00:00:00'),
    ('test20', '2022-04-02 00:00:00'),
    ('test21', '2022-04-03 00:00:00'),
    ('test22', '2022-05-01 00:00:00'),
    ('test23', '2022-05-02 00:00:00'),
    ('test24', '2022-05-03 00:00:00');

    Hier erstellen wir ein Feld vom Typ Datum/Uhrzeit mit dem Namen test 的测试表,包含三个字段 idnamecreated_at。其中 created_at, das die Erstellungszeit des Datensatzes darstellt. Wir haben einige Testdaten eingefügt, darunter Daten von Januar bis Mai 2022.

    Implementierungsprinzip

    Wenn wir Statistiken basierend auf Datumsangaben gruppieren müssen, bietet MySQL viele integrierte Datumsfunktionen wie YEAR(), MONTH() und WEEK (), DAY(), HOUR() usw. Diese Funktionen gruppieren Daten nach Datum und zählen die entsprechenden Mengen.

    Für diese Anforderung möchten wir nach Datum gruppieren und die Daten für 7 Tage, 4 Wochen und 3 Monate berechnen. Daher müssen wir eine Kombination aus Datumsformatierung und Datumsfunktionen verwenden.

    Zuerst müssen wir das Datum in das entsprechende Format formatieren. Sie können dies mit der Funktion DATE_FORMAT() tun, die zwei Parameter benötigt: Datum und Formatzeichenfolge. Das Datum kann wie unten gezeigt als „JJJJ-MM-TT“ formatiert werden, zum Beispiel:

    SELECT DATE_FORMAT(date_column, '%Y-%m-%d') AS formatted_date FROM table_name;

    Praktischer Betrieb

    Zählung nach Tag

    Als nächstes müssen wir die Mengen nach dem Datum gruppieren und zählen. Dies kann mit der GROUP BY-Klausel und der entsprechenden Datumsfunktion erreicht werden. Beispielsweise können wir die täglichen Mengen nach Datum gruppiert wie folgt zählen:

    SELECT DATE_FORMAT(date_column, '%Y-%m-%d') AS formatted_date, COUNT(*) AS count FROM table_name GROUP BY formatted_date;

    nach Woche

    SELECT DATE_FORMAT(date_column, '%x-%v') AS formatted_week, COUNT(*) AS count FROM table_name GROUP BY formatted_week;

    oder

    SELECT CONCAT(YEAR(date_column), '-', WEEK(date_column)) AS formatted_week, COUNT(*) AS count FROM table_name GROUP BY formatted_week;`

    nach Monat

    SELECT DATE_FORMAT(date_column, '%Y-%m-%d') AS formatted_month, COUNT(*) AS count FROM table_name GROUP BY formatted_month;

    oder

    SELECT CONCAT(YEAR(date_column), '-', MONTH(date_column)) AS formatted_month, COUNT(*) AS count FROM table_name GROUP BY formatted_month;

    Das obige ist der detaillierte Inhalt vonMit welcher Methode werden Statistiken im MySQL-Datumsformat aggregiert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Stellungnahme:
    Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen