选择最大日期之和

时间:2013-03-27 19:32:51

标签: mysql

我有一些网站可以收集分析数据,每个网站都有每个国家/地区的数据,而不是所有网站每个月都会获取数据。

我想得到他们最后一组数据中所有网站的访问总和(可能没有相同的日期)。

我不能在where子句中使用MAX(),因为它无效。

我已尝试将最后一个日期存储为变量但不起作用:

select sites.id, sites.name, SUM(data.visits), @start := MAX(data.start_date)
inner join data on data.profile_id = sites.profile_id
where data.start_date = @start
group by sites.profile_id

我也玩过子查询,但还不是很正确。

1 个答案:

答案 0 :(得分:4)

使用子查询获取最大日期并将其加入:

select sites.id, sites.name, SUM(data.visits), dp.maxdate
from sites inner join
     data
     on data.profile_id = sites.profile_id inner join
     (select profile_id, MAX(start_date) as maxdate
      from data
      group by profile_id
     ) dp
     on data.profile_id = dp.profile_id and data.start_date = dp.maxdate
group by sites.profile_id, sites.name, dp.maxdate