p.s.
die Spalte "ts" ist die Spalte "created" aus meinem ersten Beispiel...
Um bei diesem Beispiel zu bleiben, hätte es eigentlich heißen müssen:
SELECT IF(isNull(test.data1),0,count(*)) AS anzahl FROM nums
LEFT JOIN test ON
test.created BETWEEN _S_ AND _E_ AND
test.creatd>=(nums.id-1)*_I_ AND
test.created<(nums.id)*_I_
GROUP BY nums.id
SELECT IF(isNull(test.data1),0,count(*)) AS anzahl FROM nums
LEFT JOIN test ON
test.ts BETWEEN _S_ AND _E_ AND
test.ts>=(nums.id-1)*_I_ AND
test.ts<(nums.id)*_I_
GROUP BY nums.id