作者starjou (周星星)
看板Database
标题Re: [PhpMyadmin] 麻烦帮个忙 感谢^^"
时间Sat Nov 24 03:14:18 2007
※ 引述《dcplay01 (dcplay)》之铭言:
: ※ 引述《EAFV ()》之铭言:
: : 使用COUNT(),AVG(),SUM()等函数的时候
: : 要先用GROUP BY划分出群组来计算
: 请问是这样吗???
: UPDATE course SET MT = SUM( M1 + M2 + M3 + M4 )/4 WHERE stu_id = '93101163'
: GROUP BY 1
: 我後面忘记..GROUP BY该怎麽用了...麻烦大大帮忙 感谢^^
看你的例子似乎是要算这个学生的四个栏位的平均值,那就不用 SUM
SET MT = (M1 + M2 + M3 +M4)/4 就行了。
前提是一个学生只有一笔资料,而 MT, M1, M2, M3, M4 是五个不同的栏位
SUM() 是用来把好几笔资料的同一个栏位加总用的,GROUP BY 是用来界定要
依据什麽栏位把相对应的资料加总,譬如一个学生有好几笔成绩,要算加总
学号 分数
==================
0001 80
0002 75
0001 78
0001 83
0002 68
则用 SELECT 学号, SUM(分数) GROUP BY 学号
则会得到
学号 SUM(分数)
=====================
0001 241
0002 143
COUNT() 是用来计算 GROUP BY 的资料有几组
譬如上例 GROUP BY 学号之後 0001 的 count 会是 3,0002 的会是 2
---
刚看了你的图你是不是主键设错了,把一堆栏位都设成 primary key 了?
怎麽 update 後面的 where 子句有一大堆 AND ......
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 219.80.141.41
※ 编辑: starjou 来自: 219.80.141.41 (11/24 03:25)