追記 ※以下のやり方はtime indexが使えないので結果的に無意味でした\(^o^)/
詳しいことは中の人のコメント参照で
TD_TIME_ADDはmonthで指定できない
http://docs.treasuredata.com/articles/udfs#tdtimeadd
どうやら月は28日だったり31日だったりと固定じゃないためできないらしい。
この問題は結構前から言われてますが、特にその後変化があるわけでもないようです。
代替案
TDがダメならHiveの関数を使えばいいじゃない、ということで
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF
add_months()
を使ってみる
うーん、パフォーマンスは上がりませんが、現状取り得る手法としては悪くないと思います。
SELECT
add_months(from_unixtime(time), -3) --前前前月
使うとしたらこんな感じでしょうか?
WHERE
TD_TIME_RANGE(time,add_months('2018-02-01', -3),NULL,'JST')