Halo
Apa yang saya gunakan untuk melakukan dalam kasus-kasus itu adalah membuat tabel dengan kelas-kelas dan bergabung melawan mereka atau menggunakan subquery untuk membuat daftar kelas.
Saya pikir itu memberikan pendekatan yang lebih intuitif dan saya pikir itu lebih fleksibel karena Anda dapat memperbarui kelas hanya dengan memperbarui tabel.
Manfaat lain adalah Anda bisa mendapatkan kelas kosong juga.
pendekatan subquery bisa terlihat seperti:
SELECT
d.disease_type,
ST_ConvexHull(ST_Collect(d.the_geom)) AS the_geom FROM disease_obs
RIGHT JOIN
(SELECT 0::float AS classbottom, 1.25::float AS classtop, 1::int AS classid
UNION ALL
SELECT 1.25::float AS classbottom, 3.5::float AS classtop, 2::int AS classid
UNION ALL
SELECT 3.5::float AS classbottom, 5::float AS classtop, 3::int AS classid) AS classes
ON disease_obs.continuous_value>=classes.classbottom AND disease_obs.continuous_value<classes.classbottom
GROUP BY classes.id;
Di sini saya menggunakan hak untuk bergabung juga mendapatkan kelas-kelas kosong yang kadang-kadang berguna. Jika Anda tidak ingin yang kosong cukup ubah menjadi gabungan batin.
Jika Anda memindahkan kelas ke tabel dan menempatkan sisa kueri dalam tampilan, Anda dapat mengubah kelas tanpa menyentuh kueri.
HTH / Nicklas