SQL Count Average

时间:2012-08-08 08:00:26

标签: mysql

我有像

这样的表格
id     userid  semid  courseid  coursename  total
1       36      17       13       CA         23
2       36      17       5        CB         46        
3       36      17       8        CC         20
4       36      19       16       CD         34
5       36      19       13       CA         31
6       36      19       3        CA#        29
7       36      19       7        CE         60
8       36      10       9        CK         32
9       36      10       15       CH         56    

我需要一个用户ID的平均semid,即SUM(courseid)/ count(moduleid),它显示9作为模块计数,但我只有3个模块。 这是我的查询

SELECT userid, SUM(total)/count(semid) FROM custom WHERE userid=36  

3 个答案:

答案 0 :(得分:2)

只需使用AVG( )功能

即可
SELECT   userid, semid, AVG(total)
FROM     custom
WHERE    userid = 36
GROUP BY userid, semid

SQLFiddle Demo

答案 1 :(得分:0)

SELECT userid, SUM(total)/count(distinct semid) FROM custom WHERE userid=36   

尝试此查询

答案 2 :(得分:0)

有MYSQL聚合函数AVG()用于查找平均值。 @John Totet Woo发布了答案。