場所、値、日付の3つの列を含むvaluesというテーブルがあります
1か月あたりの平均値を出したい
これまでのところ私は持っています
SELECT Location, Avg(value), date
FROM Value
GROUP BY Location, date
これは平均値を返しますが、値は日単位で入力されるため、月単位ではなく日単位の平均が得られます。月単位の平均を取得するにはどうすればよいですか?
場所、値、日付の3つの列を含むvaluesというテーブルがあります
1か月あたりの平均値を出したい
これまでのところ私は持っています
SELECT Location, Avg(value), date
FROM Value
GROUP BY Location, date
これは平均値を返しますが、値は日単位で入力されるため、月単位ではなく日単位の平均が得られます。月単位の平均を取得するにはどうすればよいですか?
これを試して:
SELECT Location,
Avg(value),
month(date),
year(date)
FROM Value
GROUP BY Location,
month(date),
year(date)
月のみのグループ化が必要な場合は、次を使用できます。
SELECT Location, Avg(value) AvgVal, Month(date) Mnth
FROM Value
GROUP BY Location, Month(date)
を使用することもできますGROUPING SETS
。これはGROUP BY
月、年、場所になり、すべての合計が得られます。
SELECT Location,
Avg(value) AvgVal,
Month(dt) Mnth,
Year(dt) Yr
FROM yourtable
GROUP BY
GROUPING SETS((Month(dt), Year(dt), Location), (Location));
デモで SQL Fiddle を参照してください
SELECT
Location,
year(date),
month(date),
Avg(value)
FROM
Value
GROUP BY
Location,
year(date),
month(date)
月の初日を日として日付を 1 つの列に結合する場合は、次のようにすることもできます。
SELECT Location,
Avg(value),
DateFromParts(Year(date), Month(date) , 1) AS FirstOfMonthDate
FROM Value
GROUP BY Location,
DateFromParts(Year(date), Month(date) , 1)