2017-02-23 11 views
1

2016年に各月の平均カウント/レコード数を表示しようとしています。次のコードは毎月表示されず、2016年の月平均値のみを表示します。月単位でCOUNTのAVGを計算する

SELECT  AVG(DISTINCT DayCnt) AS AvgCnt 
FROM 
(
    SELECT  COUNT(*) As DayCnt 
    FROM  table 
    WHERE  YEAR(Insert_Date) = '2016' 
    GROUP BY MONTH(Insert_Date) 
) 
AS AvgCnt 
+0

あなたは、サンプルデータとテーブル・スクリプトを提供することができますか? – sam

+1

サブクエリは本質的に何をしますか? –

+0

使用しているdbmsにタグを付けます。 (いくつかの製品固有のSQL関数がそこで使用されています...) – jarlh

答えて

0

私はあなたがデータを投稿していなかったので、よく分からないが、私が正しく理解すれば、これはあなたのために働く必要があります。

SELECT  AVG(DayCnt) AS AvgCnt, mth 
FROM 
(
    SELECT  COUNT(*) As DayCnt, MONTH(Insert_Date) as mth 
    FROM  table 
    WHERE  YEAR(Insert_Date) = '2016' 
    GROUP BY MONTH(Insert_Date), DAY(Insert_Date) ) 
AS AvgCnt 
GROUP BY mth 
+0

内側のクエリ結果と外側の違いは何ですか? –

+0

内部クエリは、2016年の日と月の行数を提供する必要があります。外部クエリは、1か月に1日に受け取った平均行数を表示します。 – asemprini87

+0

okですが、月グループは前日グループ –

0

あなたが最初の月と日ごとのグループあなたの結果である必要があり、毎日のカウントレコードを挿入した後に、挿入されたレコードの月平均を取得するこれを試してください:

SELECT  monthGroup, AVG(DayCnt) AS AvgCnt 
FROM 
(
    SELECT  MONTH(Insert_Date) monthGroup, DAY(Insert_Date) dayGroup, COUNT(*) As DayCnt 
    FROM  table 
    WHERE  YEAR(Insert_Date) = '2016' 
    GROUP BY MONTH(Insert_Date), DAY(Insert_Date) 
) 
AS AvgCnt 
GROUP BY monthGroup 
関連する問題