我想從用戶滿意度調查中得到一些平均得分,我在這裏工作。有時候某個問題的評分爲0,因爲我們這樣做的服務沒有提供,所以他們無法回答。然而,我並沒有真正考慮這種情況,只有一次航班只有一次調查,這意味着我最終可能得到0分。下面您看到數據庫的圖示:即使另一列爲0,也需要包括計數
這是因爲,如果調查有13個問題,我只得到結果返回他們的8,因爲5有0收視率,然後我結束了一個問題在所有其他航班已經回答了至少一次的所有13個問題,最終數據的不匹配(!希望是有道理的)
所以我用來做這個:
SELECT AVG(CAST(RATING AS NUMERIC(18, 2))) AS AVERAGE,
QUESTIONID,
COUNT(QUESTIONID) AS COUNT
FROM AnswersRating
WHERE SURVEYID IN
(
SELECT ID
FROM SURVEYS
WHERE FLIGHTDATAID = 7311
) AND RATING > 0
GROUP BY QUESTIONID
ORDER BY QUESTIONID;
這是罰款,只要因爲你沒有1次調查 飛行。但事實證明,我們這樣做:
AVERAGE QUESTIONID COUNT
3.000000 109 1
3.000000 110 1
3.000000 111 1
3.000000 112 1
3.000000 115 1
3.000000 117 1
3.000000 118 1
3.000000 120 1
3.000000 121 1
該航班沒有對問題113,114,116和119,我知道這一點,因爲我知道這個調查有13個問題的答案。但是一項調查未來可能會有很多問題。所以我想要有,而不是上述將是這樣的:
AVERAGE QUESTIONID COUNT
3.000000 109 1
3.000000 110 1
3.000000 111 1
3.000000 112 1
0.000000 113 0
0.000000 114 0
3.000000 115 1
0.000000 116 0
3.000000 117 1
3.000000 118 1
0.000000 119 0
3.000000 120 1
3.000000 121 1
其中某些這些計數爲0。鑑於我目前的查詢,是否有可能這樣做?如果是的話,如何?
想看看錶定義,但一般來講的情況下, - 這聽起來像是你應該將你的問題表加入你的答案表中,然後總結答案 –
你需要一個表格,其中包含缺失問題的數據。 –
我收錄了一張表格圖。這有幫助嗎? – OmniOwl