Mysql 平均数

Mysql 平均数,mysql,sum,average,Mysql,Sum,Average,我的问题是: 我有一张这样的桌子: Table Log int id; int time; timestamp DATE; int sid (FK to table Site); 和一个表格站点: Table Site; int id; varchar title; 在我的日志表中,一个站点可以出现0或N次,我需要得到每个站点的时间总和 这个请求已经完成,并且似乎有效,现在我需要在日志中获取站点标题和特定时间段的平均总和时间 我的问题是: SELECT site, AVG(s

我的问题是:

我有一张这样的桌子:

 Table Log
 int id;
 int time;
 timestamp DATE;
 int sid (FK to table Site);
和一个表格站点:

 Table Site;
 int id;
 varchar title;
在我的日志表中,一个站点可以出现0或N次,我需要得到每个站点的时间总和

这个请求已经完成,并且似乎有效,现在我需要在日志中获取站点标题和特定时间段的平均总和时间

我的问题是:

SELECT site, AVG(sumtime)
FROM (
    SELECT Site.TITLE as site, SUM(time) as sumtime FROM Log
    INNER JOIN sites ON Site.ID = Log.sid
    WHERE Log.DATE between '2012-11-13' AND '2012-11-15'
    GROUP BY Site.TITLE
) AS t1
GROUP BY t1.site;
但是平均值在这种情况下似乎不起作用,我得到的值是我在子查询中计算的总和,有什么帮助吗

编辑:

以下是一个数据示例:

Site
1 SiteA
2 SiteB

Log
1 2500 "2012-11-14 07:00:01" 1
2 3500 "2012-11-14 07:10:01" 1
3 4500 "2012-11-14 07:12:01" 1
4 6500 "2012-11-13 10:10:01" 1
5 2500 "2012-11-14 08:00:01" 2
6 3500 "2012-11-14 10:10:01" 2
7 5500 "2012-11-13 12:10:01" 2
我现在需要的是一段时间内时间总和的平均值(例如,2012-11-13到2012-11-14),因此对于预期数据:

Site, avg time sum
Site A, 8500
Site B, 5750
试试这个

SELECT t1.site, AVG(t1.sumtime)
FROM (
SELECT Site.TITLE as site, SUM(time) as sumtime FROM Log
INNER JOIN sites ON Site.ID = Log.sid
WHERE Log.DATE between '2012-11-13' AND '2012-11-15'
GROUP BY time
) AS t1
GROUP BY t1.site;
试试这个

SELECT t1.site, AVG(t1.sumtime)
FROM (
SELECT Site.TITLE as site, SUM(time) as sumtime FROM Log
INNER JOIN sites ON Site.ID = Log.sid
WHERE Log.DATE between '2012-11-13' AND '2012-11-15'
GROUP BY time
) AS t1
GROUP BY t1.site;

我解决了我的问题,找到了编写查询的好方法(感谢@tombom):


我解决了我的问题,找到了编写查询的好方法(感谢@tombom):


我想平均数与总和相同的唯一原因是当每个组正好是一行或所有总和相等时:)这是一个很好的点,现在我需要一个周期的平均总和时间,所以。。。子查询中的group by Site.TITLE似乎给出了一个错误的结果。@Tony你能发布一些示例数据,然后是预期的结果吗?@Tony如果你解决了它,你应该把它贴出来作为答案,然后接受它。我假设平均数与总和相同的唯一原因是当每组正好是一行或所有总和相等时:)这是一个很好的观点,现在我需要一个周期的平均总和,所以。。。子查询中的group by Site.TITLE似乎给出了一个错误的结果。@Tony你能发布一些示例数据,然后是预期的结果吗?@Tony如果你解决了它,你应该将其作为答案发布,然后接受它。它与我的请求相同。它与我的请求相同。