Re: [SQL ] 算10題相加平均值

看板Database作者 (連米)時間13年前 (2010/11/09 15:48), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/2 (看更多)
用總數 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
it's ok 3Q~
11/10 09:38, 1F
文章代碼(AID): #1CsFpMrW (Database)
文章代碼(AID): #1CsFpMrW (Database)