作者athelok (连米)
看板Database
标题Re: [SQL ] 算10题相加平均值
时间Tue Nov 9 15:48:35 2010
用总数 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)
1F:推 bkk:it's ok 3Q~ 11/10 09:38