diff options
Diffstat (limited to 'domagi/chop.sql')
| -rw-r--r-- | domagi/chop.sql | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/domagi/chop.sql b/domagi/chop.sql new file mode 100644 index 0000000..571a8ef --- /dev/null +++ b/domagi/chop.sql @@ -0,0 +1,12 @@ +WITH segment_chops AS ( + SELECT id, name, sequence, range(0, len(sequence), 3) AS starts + FROM segment), + segment_chop AS ( + SELECT id, name, sequence, 1 + unnest(starts) AS start, generate_subscripts(starts, 1)-1 AS chop_index + FROM segment_chops) + SELECT id, CASE WHEN chop_index=0 THEN name ELSE NULL END, array_slice(sequence, start, start + 3) + FROM segment_chop; + +-- chop index is computed as ceil(a/b) = (a+b-1)//b +-- SELECT id, name, unnest(range(0, len(sequence), 3)) AS starts, unnest(range(0, (len(sequence)+3-1)//3)) AS chop_index +-- FROM segment; |
