Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menjana Julat Tarikh Komprehensif dengan Nilai Sifar Populasi untuk Data yang Hilang?

Bagaimana untuk Menjana Julat Tarikh Komprehensif dengan Nilai Sifar Populasi untuk Data yang Hilang?

Barbara Streisand
Barbara Streisandasal
2024-12-19 03:24:08413semak imbas

How to Generate a Comprehensive Date Range with Populated Zero Values for Missing Data?

Menjana Julat Tarikh Komprehensif dengan Data Populasi

Dalam pangkalan data, selalunya perlu untuk mendapatkan semula data dalam julat tarikh tertentu. Walau bagaimanapun, apabila data tiada untuk tarikh tertentu, adalah berguna untuk memaparkan sifar dan bukannya membiarkan lajur kosong. Ini memastikan bahawa keseluruhan julat tarikh diwakili, memberikan paparan data yang lebih komprehensif.

Masalah:

Anda mempunyai jadual yang mengandungi data tarikh dan nilai serta keperluan untuk mendapatkan semula semua tarikh dalam julat yang ditentukan. Jika tiada baris untuk tarikh tertentu, anda mahu memaparkan sifar untuk semua lajur.

Penyelesaian:

Ini boleh dicapai dengan membuat set tarikh menggunakan ungkapan jadual biasa rekursif (CTE) dan kemudian melakukan gabungan kiri dengan jadual data sedia ada. CTE menjana satu siri tarikh dalam julat yang ditentukan. Gabungan kiri sepadan dengan tarikh yang dijana dengan baris sedia ada, mengisi sebarang nilai yang hilang dengan sifar menggunakan fungsi ISNULL().

;with d(date) as (
  select cast('10/01/2012' as datetime)
  union all
  select date+1
  from d
  where date < '10/15/2012'
  )
select t.ID, d.date CDate, isnull(t.val, 0) val
from d
left join temp t
       on t.CDate = d.date
order by d.date
OPTION (MAXRECURSION 0)

Pilihan MAXRECURSION menentukan bilangan maksimum lelaran rekursif yang dibenarkan. Dalam kes ini, memandangkan julat tarikh adalah kecil (15 hari), kami boleh menetapkannya kepada 0 untuk membenarkan lelaran tanpa had.

Dengan melaksanakan pertanyaan ini, anda akan memperoleh set data lengkap yang merangkumi semua tarikh dalam tempoh yang ditentukan julat. Mana-mana tarikh yang hilang akan diisi dengan sifar, memberikan gambaran menyeluruh data.

Atas ialah kandungan terperinci Bagaimana untuk Menjana Julat Tarikh Komprehensif dengan Nilai Sifar Populasi untuk Data yang Hilang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn