> 데이터 베이스 > MySQL 튜토리얼 > MySQL 날짜 형식으로 통계를 집계하는 방법은 무엇입니까?

MySQL 날짜 형식으로 통계를 집계하는 방법은 무엇입니까?

WBOY
풀어 주다: 2023-05-31 23:04:48
앞으로
1177명이 탐색했습니다.

    소개

    시간과 날짜는 일반적으로 그룹화 조건으로 사용되며 데이터 통계를 용이하게 하기 위해 실제 개발에서도 자주 사용됩니다. MySQL에서는 날짜 형식 지정 기능을 사용하여 날짜를 지정된 형식의 문자열로 변환한 다음 필요한 시간 단위에 따라 그룹 통계를 수행할 수 있습니다.

    준비

    시작하기 전에 테스트 데이터 테이블을 준비하고 후속 실험과 테스트를 용이하게 하기 위해 일부 데이터를 삽입해야 합니다.

    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');
    로그인 후 복사

    여기서 레코드 생성 시간을 나타내는 test 的测试表,包含三个字段 idnamecreated_at。其中 created_at라는 날짜/시간 유형 필드를 만듭니다. 2022년 1월부터 5월까지의 데이터를 포함한 일부 테스트 데이터를 삽입했습니다.

    구현 원칙

    날짜를 기준으로 그룹 통계를 수행해야 할 때 MySQL은 YEAR(), MONTH(), WEEK(), DAY(), HOUR() 등 이 함수는 날짜별로 데이터를 그룹화하고 해당 수량을 계산합니다.

    이 요구사항을 위해 날짜별로 그룹화하고 7일, 4주, 3개월 동안의 데이터를 계산하려고 합니다. 따라서 날짜 형식과 날짜 기능을 조합하여 사용해야 합니다.

    먼저 날짜를 해당 형식으로 지정해야 합니다. 날짜와 형식 ​​문자열이라는 두 가지 매개변수를 사용하는 DATE_FORMAT() 함수를 사용하여 이 작업을 수행할 수 있습니다. 날짜는 아래와 같이 "yyyy-MM-dd" 형식으로 지정할 수 있습니다. 예:

    SELECT DATE_FORMAT(date_column, '%Y-%m-%d') AS formatted_date FROM table_name;
    로그인 후 복사

    Practical Operation

    Count by day

    다음으로 날짜에 따라 수량을 그룹화하고 계산해야 합니다. 이는 GROUP BY 절과 해당 날짜 함수를 사용하여 달성할 수 있습니다. 예를 들어,

    SELECT DATE_FORMAT(date_column, '%Y-%m-%d') AS formatted_date, COUNT(*) AS count FROM table_name GROUP BY formatted_date;
    로그인 후 복사

    주별

    SELECT DATE_FORMAT(date_column, '%x-%v') AS formatted_week, COUNT(*) AS count FROM table_name GROUP BY formatted_week;
    로그인 후 복사

    또는

    SELECT CONCAT(YEAR(date_column), '-', WEEK(date_column)) AS formatted_week, COUNT(*) AS count FROM table_name GROUP BY formatted_week;`
    로그인 후 복사

    월별

    SELECT DATE_FORMAT(date_column, '%Y-%m-%d') AS formatted_month, COUNT(*) AS count FROM table_name GROUP BY formatted_month;
    로그인 후 복사

    또는

    SELECT CONCAT(YEAR(date_column), '-', MONTH(date_column)) AS formatted_month, COUNT(*) AS count FROM table_name GROUP BY formatted_month;
    로그인 후 복사
    와 같이 날짜별로 그룹화된 일일 수량을 계산할 수 있습니다.

    위 내용은 MySQL 날짜 형식으로 통계를 집계하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    관련 라벨:
    원천:yisu.com
    본 웹사이트의 성명
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
    인기 튜토리얼
    더>
    최신 다운로드
    더>
    웹 효과
    웹사이트 소스 코드
    웹사이트 자료
    프론트엔드 템플릿