Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- SET @n1 = 0;
- SET @n2 = 0;
- SET @n3 = 0;
- SET @i1 = 0;
- SET @i2 = 0;
- SET @i3 = 0;
- SELECT
- *,
- AVG(IF(t1.row_number1 BETWEEN t3.c1 - 5 AND t3.c1, t1.1, NULL)),
- AVG(IF(t1.row_number2 BETWEEN t3.c2 - 5 AND t3.c2, t1.2, NULL)),
- AVG(IF(t1.row_number3 BETWEEN t3.c3 - 5 AND t3.c3, t1.3, NULL))
- FROM (
- SELECT
- st.*,
- IF(st.1 IS NOT NULL, @n1:= @n1+1, NULL) row_number1,
- IF(st.2 IS NOT NULL, @n2:= @n2+1, NULL) row_number2,
- IF(st.3 IS NOT NULL, @n3:= @n3+1, NULL) row_number3
- FROM super_task st, (SELECT @n1:= 0) i
- WHERE (st.1 IS NOT NULL OR st.2 IS NOT NULL OR st.3 IS NOT NULL)
- ) t1
- CROSS JOIN (
- SELECT
- MAX(t2.row_number1) c1,
- MAX(t2.row_number2) c2,
- MAX(t2.row_number3) c3
- FROM (
- SELECT
- st.*,
- IF(st.1 IS NOT NULL, @i1:= @i1+1, NULL) row_number1,
- IF(st.2 IS NOT NULL, @i2:= @i2+1, NULL) row_number2,
- IF(st.3 IS NOT NULL, @i3:= @i3+1, NULL) row_number3
- FROM super_task st, (SELECT @i1:= 0) i
- WHERE (st.1 IS NOT NULL OR st.2 IS NOT NULL OR st.3 IS NOT NULL)
- ) t2
- ) t3
- ;
Advertisement
Add Comment
Please, Sign In to add comment