Kesalahan dalam upaya pertama Anda adalah Anda tidak dapat mencampur fungsi agregat count(*)
dengan tidak teragregasi pemilihan baris. Anda dapat memperbaikinya dengan menggunakan count()
sebagai fungsi agregat jendela sebagai gantinya:
SELECT * FROM (
SELECT *, ((row_number() OVER (ORDER BY "time"))
% ceil(count(*) OVER () / 500.0)::int) AS rn
FROM data_raw
) sub
WHERE sub.rn = 0;
Penjelasan lengkapnya di sini:
@Alexander memiliki perbaikan untuk upaya terakhir Anda.