Re: [SQL ] 算10題相加平均值
用總數 3 個欄位當範例 10 個欄位請依此類推:
資料表名 tb,3個欄位分別為c1 c2 c3、平均欄位名avg_column
update tb set tb.avg_column =
IFNULL(
(IF(tb.c1 = 1, 0, tb.c1) + IF(tb.c2 = 1, 0, tb.c2) + IF(tb.c3 = 1, 0, tb.c3))
/
(3 - (IF(tb.c1 = 1, 1, 0)) - (IF(tb.c2 = 1, 1, 0)) - (IF(tb.c3 = 1, 1, 0)))
, 0)
對了 資料庫是MYSQL, 目前想到的就這樣, 還有其他大大有更好的做法嗎?
※ 引述《bkk (.....)》之銘言:
: 目前在做一個問卷分數的計算
: 問卷一共有10題 分數個別是
: 非常不滿意:1
: 不滿意:2
: 尚可:3
: 滿意:4
: 非常滿意:5
: 資料庫欄位則有題目1到題目10以及平均分數
: 我現在想要把10題的分數加起來後算平均值
: 目前的SQL語法如下
: UPDATE dbo.Q_問卷一 set 平均分數 =
: (題目1+ 題目2+題目3+題目4+題目5+題目6+題目7+題目8+題目9+題目10)/10
: 問題來了 現在我要把分數為1的題目去掉 不納入平均值計算
: 例如:題目1為1 那平均分數就是 (題目2+到題目10)/9
: 題目1跟2為1 那平均分數就是 (題目3+到題目10)/8
: 我有認真想過 不過實在是沒概念
: 我甚至想說用土法煉鋼的方式 寫好幾百種當題目x=1的條件去判斷(實在是蠢的可以= =)
: 拜託大家幫個忙了 感謝!!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.219.70.181
※ 編輯: athelok 來自: 61.219.70.181 (11/09 15:49)
推
11/10 09:38, , 1F
11/10 09:38, 1F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):