4
我有一個數據庫中的表是這樣的:SQL Server 2008 R2的子查詢分組,總結和計數
CREATE TABLE dbo.evals (
[id] [int] IDENTITY(1,1) NOT NULL,
[agent_id] [int] NOT NULL,
[matrix_1] [int],
[matrix_2] [int],
[matrix_2] [int])
的matrix_(X)列的每個人都有的默認值爲0。當代理正在經理評估並不要求每個矩陣都要輸入。代理商可以每天進行評估。如果輸入矩陣,它將有一個介於1和5之間的值。如果不是,則爲0.我需要創建一個報告,對每個代理的每個矩陣進行求和和平均。在計算平均值時,我不需要計算0值,所以我需要以某種方式計算矩陣值<> 0的計數。報告不是針對一個代理,而是針對一個報告中的所有代理。我試圖通過agent_id與子查詢的一般組得到矩陣計數矩陣<> 0,它不起作用。我想結束的是類似於:
select agent_id, sum(matrix_1)/(count(matrix_1) where matrix_1 <> 0),
sum(matrix_2)/(count(matrix_2) where matrix_2 <> 0),
sum(matrix_3)/(count(matrix_3) where matrix_3 <> 0)
group by agent_id
這只是僞代碼說明所需的結果。我曾嘗試使用子查詢中的每個列使用子查詢中的分組,但沒有奏效。
@羅恩·史密斯 - 這正是我需要的 - 完美的作品什麼我的要求是 - 謝謝你。 –
非常歡迎您先生! :) –