Mysql 如何每天计算一个字段,然后按年和周分组

Mysql 如何每天计算一个字段,然后按年和周分组,mysql,date,count,sum,Mysql,Date,Count,Sum,如果我有一个包含两列的数据库,日期和帐户,我想先每天计算帐户数,然后按周分组。我的代码错了多少,怎么做? 我稍微编辑了一下我的代码,我从一开始就没有正确思考。我希望第48周的总数是9 SELECT date, account, (SELECT date, COUNT(DISTINCT account) FROM t1 GROUP BY date ) AS sum FROM t1 GROUP BY YEARWEEK(date) 您似乎在寻找一个简单的聚合查询,其中包含计数(不同的…):

如果我有一个包含两列的数据库,日期和帐户,我想先每天计算帐户数,然后按周分组。我的代码错了多少,怎么做? 我稍微编辑了一下我的代码,我从一开始就没有正确思考。我希望第48周的总数是9

SELECT date, account,
(SELECT date, COUNT(DISTINCT account) 
FROM t1 
GROUP BY date
) AS sum

FROM t1
GROUP BY YEARWEEK(date) 

您似乎在寻找一个简单的聚合查询,其中包含
计数(不同的…)

注意:
yearweek();如果您的数据跨越几年,这比
week()
要好

编辑

从评论中,您需要两个级别的聚合:

select yearweek(dy) year_week, sum(cnt) cnt_account
from (
    select date(t1.date) dy, count(distinct t1.account) cnt
    from t1
    group by date(t1.date)
) t
group by yearweek(dy)
order by year_week

请在您的问题中添加示例数据。请参阅:此代码的值为3,因为它每周计数不同。我希望它每天都能计数,然后在几周内进行总结。所以这个值应该是9。
select yearweek(dy) year_week, sum(cnt) cnt_account
from (
    select date(t1.date) dy, count(distinct t1.account) cnt
    from t1
    group by date(t1.date)
) t
group by yearweek(dy)
order by year_week