Menjana Siri dalam Redshift
Amazon Redshift adalah berdasarkan versi lama PostgreSQL (8.0.2) yang tidak mempunyai sokongan untuk generate_series( ) berfungsi apabila berurusan dengan cap masa. Percubaan untuk menggunakan fungsi dengan tarikh, seperti:
select * from generate_series(date('2008-10-01'),date('2008-10-10 00:00:00'),1)
akan mengakibatkan ralat.
Penyelesaian
Walaupun kekurangan arahan langsung sokongan untuk generate_series() dengan cap masa, terdapat beberapa penyelesaian:
1. Aritmetik Tarikh Semasa:
SELECT current_date + (n || ' days')::interval from generate_series (1, 30) n
Pendekatan ini, yang berfungsi dalam PostgreSQL 8.3 dan lebih baru, menggunakan aritmetik tarikh ringkas untuk menjana satu siri tarikh.
2. Jadual Integer:
Buat jadual integer yang boleh digunakan untuk aritmetik tarikh:
create table integers ( n integer primary key );
Isi jadual dan gunakannya untuk pengiraan tarikh:
select (current_date + n) from integers where n < 31;
Nota: Redshift tidak menyokong jenis data selang, jadi perkara di atas penyelesaian mungkin tidak tersedia dalam semua kes.
Atas ialah kandungan terperinci Bagaimana untuk Menjana Siri Tarikh dalam Amazon Redshift Tanpa generate_series()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!