MySQL 날짜 범위가 누락된 값을 채웁니다
두 개의 열(날짜 및 점수)이 있는 테이블이 있고 누락된 날짜를 채워 연속된 값 시퀀스를 얻으려고 한다고 가정합니다. 예를 들어, 테이블에 현재 다음 데이터가 포함되어 있는 경우:
<code>日期 分数 ----------------- 2010-08-01 19 2010-08-02 21 2010-08-04 14 2010-08-07 10 2010-08-10 14</code>
다음 결과를 얻기 위해 누락된 날짜(2010-08-03, 2010-08-05 및 2010-08-06)를 0으로 채우려고 합니다.
<code>日期 分数 ----------------- 2010-08-01 19 2010-08-02 21 2010-08-03 0 2010-08-04 14 2010-08-05 0 2010-08-06 0 2010-08-07 10 2010-08-10 14</code>
이를 달성하려면 다음 쿼리를 사용할 수 있습니다.
<code class="language-sql">SELECT x.ts AS timestamp, COALESCE(y.score, 0) AS cnt FROM (SELECT DATE_ADD('2010-06-06', INTERVAL n.id - 1 DAY) AS ts FROM numbers n WHERE DATE_ADD('2010-06-06', INTERVAL n.id -1 DAY) < '2010-08-11') x LEFT JOIN your_table y ON DATE(x.ts) = DATE(y.date);</code>
다음은 검색어 분석입니다.
your_table
을 실제 테이블 이름으로 바꾸세요. 1부터 시작하는 연속 정수를 포함하는 numbers
이라는 자동 증가 열이 포함된 id
이라는 테이블이 있는지 확인하세요. 그렇지 않은 경우 먼저 하나를 만들어야 합니다. 예: CREATE TABLE numbers (id INT AUTO_INCREMENT PRIMARY KEY);
그런 다음 날짜 범위를 포함할 만큼 충분한 수의 레코드를 삽입합니다.
위 내용은 MySQL 범위에서 누락된 날짜를 0 값으로 채우는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!