我有一個查詢,我得到了一些評級 哪些工作正確的平均值。當它等於null時如何讓列輸出爲零?
WITH row_avg_table(avg_rating,employee, approveddate) AS
(SELECT
(SELECT AVG(rating)
FROM (
VALUES (CAST(c.rating1 AS float)), (CAST(c.rating2 AS float)), (CAST(c.rating3 AS float)),
(CAST(c.rating4 AS float)), (CAST(c.rating5 AS float))) AS v (rating)
WHERE v.rating > 0) avg_rating,
employee,approveddate
FROM CSEReduxResponses c)
SELECT employee,
avg(avg_rating) as average_rating
FROM row_avg_table
where month(approveddate)=2014
AND year(approveddate)=6
GROUP BY employee;
問題具有即時通訊是當等級1-5將全部爲0。 現在,它給了我「空」我想它顯示爲0這個特殊的日子。 例如,我有以下
create table CSEReduxResponses (rating1 int, rating2 int, rating3 int, rating4 int, rating5 int,
approveddate datetime,employee int)
insert into CSEReduxResponses (rating1 , rating2 ,rating3 , rating4 , rating5 ,
approveddate, employee)
values
(5,4,5,1,4,'2014-06-18',1),
(5,4,5,1,0,'2014-06-18',1),
(0,0,0,0,0,'2014-06-19',3);
所以對於員工= 3 AVERAGE_RATING數據= 0
...你有'null'或'0'嗎?他們不是一回事。 'AVG(...)'會忽略'null',但不會'0'(原因很明顯)。將平均網的平均值與整體平均值的結果不同,那麼您是否想要平均每日平均值,月平均值還是其他?你的結果行應該是什麼樣的? –