about summary refs log tree commit diff
path: root/domagi/chop.sql
diff options
context:
space:
mode:
Diffstat (limited to 'domagi/chop.sql')
-rw-r--r--domagi/chop.sql12
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;