-- Window関数 --
SELECT date, name, score, avg(score) OVER (
PARTITION BY name
ORDER BY date
ROWS BETWEEN 29 PRECEDING AND CURRENT ROW
) AS moving_avg
FROM score_table
ORDER BY name;
-- 相関サブクエリ --
SELECT date, name, score,
(SELECT avg(score)
FROM score_table t2
WHERE t2.name = t1.name
AND t2.date BETWEEN date(t1.date, '-29 days') AND t1.date
) AS moving_avg
FROM score_table t1;
LS0gV2luZG936Zai5pWwIC0tClNFTEVDVCBkYXRlLCBuYW1lLCBzY29yZSwgYXZnKHNjb3JlKSBPVkVSICgKCVBBUlRJVElPTiBCWSBuYW1lCglPUkRFUiBCWSBkYXRlCglST1dTIEJFVFdFRU4gMjkgUFJFQ0VESU5HIEFORCBDVVJSRU5UIFJPVwopIEFTIG1vdmluZ19hdmcKRlJPTSBzY29yZV90YWJsZQpPUkRFUiBCWSBuYW1lOwoKLS0g55u46Zai44K144OW44Kv44Ko44OqIC0tClNFTEVDVCBkYXRlLCBuYW1lLCBzY29yZSwgCgkoU0VMRUNUIGF2ZyhzY29yZSkKCQlGUk9NIHNjb3JlX3RhYmxlIHQyCiAgICAJV0hFUkUgdDIubmFtZSA9IHQxLm5hbWUKICAgIAlBTkQgdDIuZGF0ZSBCRVRXRUVOIGRhdGUodDEuZGF0ZSwgJy0yOSBkYXlzJykgQU5EIHQxLmRhdGUKKSBBUyBtb3ZpbmdfYXZnCkZST00gc2NvcmVfdGFibGUgdDE7Cg==