mysql标准差

shandongperson 2010-12-07 03:00:39
select
pow(sns_examdetail.SCORE-avg(sns_examdetail.SCORE),2) as score_pow ,
sum(pow(sns_examdetail.SCORE-avg(sns_examdetail.SCORE),2)) as sum_pow
from
sns_examdetail,sns_exam,ctb_papers,ctb_subject
where
sns_examdetail.EXAM_ID = sns_exam.EXAM_ID
and
sns_exam.PAPER_ID = ctb_papers.PAPER_ID
and
sns_examdetail.SUBJECT_ID = ctb_subject.SUBJECT_ID
and
ctb_subject.SUBJECT_ID = ctb_papers.SUBJECT_ID
and
sns_examdetail.PROBLEM_ID is null
and
sns_examdetail.STATUS <> 0
and
sns_exam.EXAM_NAME = 'XXXXXXXXX'
and
sns_exam.AREA_ID = '50'
group by subject_name
为什么select中的前半句话可以取得结果,而后半句话就说Invalid use of group function?郁闷的要死
...全文
561 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
iihero_ 2010-12-07
  • 打赏
  • 举报
回复
直接使用STD分析函数
ACMAIN_CHM 2010-12-07
  • 打赏
  • 举报
回复
另外如果你是求标准差,你可以直接使用 STD() 函数

select subject_name,STD(SCORE) from ,... group by subject_name
ACMAIN_CHM 2010-12-07
  • 打赏
  • 举报
回复
sum(pow(sns_examdetail.SCORE-avg(sns_examdetail.SCORE),2)) as sum_pow
这句语法不对,对已经AVG了,怎么再对它进行SUM?同样去MAX也是错误的。
wwwwb 2010-12-07
  • 打赏
  • 举报
回复
必须用聚合函数
max(pow(sns_examdetail.SCORE-avg(sns_examdetail.SCORE),2)) as score_pow
wwwwb 2010-12-07
  • 打赏
  • 举报
回复
必须用聚合函数
max(pow(sns_examdetail.SCORE-avg(sns_examdetail.SCORE),2)) as score_pow

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧