私はある期間(例えば、過去6ヶ月、先月、先週、...)に平均を取ろうとしています。期間中に平均を計算するにはどうすればよいですか?
私は4つのクエリを作成しました。私は何かを明確にすることはできますか?
/** ON SELECTED DATE*/
SELECT AVG(RUN_TIME)
FROM (SELECT (DATEDIFF(minute,MIN(CAST(START_DATE AS DATETIME)), MAX(CAST(END_DATE AS DATETIME)))) as RUN_TIME FROM TableTest where DATE_EXPECTED = DATE_SELECTED) f
/**ON 6 last month*/
SELECT AVG(RUN_TIME)
FROM (SELECT (DATEDIFF(minute,MIN(CAST(START_DATE AS DATETIME)), MAX(CAST(END_DATE AS DATETIME)))) as RUN_TIME FROM TableTest
where Month(CAST(DATE_SELECTED AS DATETIME)) BETWEEN Month(CAST(DATE_SELECTED AS DATETIME)) AND Month(CAST(DATE_SELECTED AS DATETIME))+6) f
/** on 30 last days */
SELECT AVG(RUN_TIME)
FROM (SELECT (DATEDIFF(minute,MIN(CAST(START_DATE AS DATETIME)), MAX(CAST(END_DATE AS DATETIME)))) as RUN_TIME FROM TableTest where DATE_EXPECTED between DATE_SELECTED and DATE_SELECTED+30) f
/* on 5 last days */
SELECT AVG(RUN_TIME)
FROM (SELECT (DATEDIFF(minute,MIN(CAST(START_DATE AS DATETIME)), MAX(CAST(END_DATE AS DATETIME)))) as RUN_TIME FROM TableTest where DATE_EXPECTED between DATE_SELECTED and DATE_SELECTED+5) f
これは機能していますが、私はこのことを最善の方法で行うことができるかどうかを知りたいと思います。
おかげで、
はい、私は平均したいと思います。私はまだそれを学んでいる:私は平均のAVGを使用すべきではない? – Bob
日付付きのショートカットの使用については、この記事をご覧ください。 http://sqlblog.com/blogs/aaron_bertrand/archive/2011/09/20/bad-habits-to-kick-using-shorthand-with-date-time-operations.aspx –