6

場所、値、日付の3つの列を含むvaluesというテーブルがあります

1か月あたりの平均値を出したい

これまでのところ私は持っています

SELECT Location, Avg(value), date  
FROM Value  
GROUP BY Location, date 

これは平均値を返しますが、値は日単位で入力されるため、月単位ではなく日単位の平均が得られます。月単位の平均を取得するにはどうすればよいですか?

4

4 に答える 4

14

これを試して:

SELECT    Location,
          Avg(value),
          month(date),
          year(date)
FROM      Value
GROUP BY  Location,
          month(date),
          year(date)
于 2012-09-13T15:10:12.397 に答える
5

月のみのグループ化が必要な場合は、次を使用できます。

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 を参照してください

于 2012-09-13T15:10:11.083 に答える
4
SELECT
     Location,
     year(date),
     month(date),
     Avg(value)
FROM
     Value
GROUP BY
     Location,
     year(date),
     month(date)
于 2012-09-13T15:10:08.303 に答える
0

月の初日を日として日付を 1 つの列に結合する場合は、次のようにすることもできます。

SELECT    Location,
          Avg(value),
          DateFromParts(Year(date), Month(date) , 1) AS FirstOfMonthDate
FROM      Value
GROUP BY  Location,
          DateFromParts(Year(date), Month(date) , 1)
于 2020-09-15T03:10:08.883 に答える