2016-06-21 11 views
0

サブクエリグループ化年月

SELECT 
(
(SELECT CAST(COUNT(DISTINCT id) as float) 
FROM [table] 
WHERE description = 'x' 
)/
(
(SELECT CAST(COUNT(DISTINCT id) as float) 
FROM [table]) 
) 
AS quotient 

は、それぞれに同じ商を計算する方法はありますテーブル全体の代わりに月と年を使用しますか?私は最後にGROUP BY MONTH(time) + YEAR(time)を試しましたが、次のようなエラーがありました:

複数の部分の識別子をバインドできませんでした。

+0

ポストクエリ、*正確な*エラーメッセージ、および好ましくは、いくつかの例の入力/出力を。 – Blorgbeard

答えて

1

これを試してください:あなたはとのトラブルを抱えている

SELECT YEAR(time), MONTH(time), 
     COUNT(DISTINCT CASE WHEN description = 'x' THEN id END)/
     (COUNT(DISTINCT id) * 1.0) AS quotient 
FROM [table] 
GROUP BY YEAR(time), MONTH(time) 
+0

これはほとんど機能しますが、元のクエリを実行した場合の総計と一致しないため、複数の月に表示されるいくつかのIDをダブルでカウントすると思います。各IDの最初のインスタンスだけをカウントすることは可能でしょうか?各IDの最小時間だけを保持します。 – learningAsIGo