首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从SQL中的某一特定日期获得总计

从SQL中的某一特定日期获得总计
EN

Stack Overflow用户
提问于 2014-02-16 15:40:38
回答 1查看 69关注 0票数 2

我不知道怎样才能在一栏中得到某一年(2001年)以来的总金额。

我有这张桌子

代码语言:javascript
复制
ID | date
==========
1  | 2001
2  | 2001
3  | 2002
4  | 2003
5  | 2003
7  | 2003
8  | 2004
9  | 2004
10 | 2006

我喜欢得到:

代码语言:javascript
复制
date | count | total
====================
2001 | 2     | 2
2002 | 1     | 3
2003 | 3     | 6
2004 | 2     | 8
2005 | 0     | 8
2006 | 1     | 9

从根本上说,2001年是本年度的2次,总共是2次;2002年是本年度的1次,2001年是3次;2003年是本年度的3次,2001年和2002年的/from年是6次),等等。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-16 15:49:56

您似乎需要total列中的累积和。下面是一种使用关联子查询来完成此操作的方法:

代码语言:javascript
复制
select date, count(*) as `count`,
       (select count(*) from table t2 where t2.date <= t.date) as total
from table t
where date > 2000
group by date;

编辑:

如果您想要所有的日期,那么您需要生成它们并加入它们:

代码语言:javascript
复制
select dates.date, count(*) as `count`,
       (select count(*) from table t2 where t2.date <= dates.date) as total
from (select 2001 as date union all
      select 2002 union all
      select 2003 union all
      select 2004 union all
      select 2005 union all
      select 2006
     ) dates left outer join
     table t
     on dates.date = t.date
where t.date > 2000
group by dates.date;
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21813356

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档