SQL 按时间统计
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL 按时间统计相关的知识,希望对你有一定的参考价值。
参考技术A 解决方法一:子查询select
t1.part
,sum((select
t2.record
from
tablexxx
as t2
where
t2.part
=
t1.part
and t1.date
=
t2.date
and t2.date like
'%-4' ))
,sum((select
t2.record
from
tablexxx
as t2
where
t2.part
=
t1.part
and t1.date
=
t2.date
and t2.date like
'%-5' ))
--你需要统计几个日期就写几句子查询
from
tablexxx
as t1
解决方法二:decode
select
part
,sum(decode(date,'2010-4',record,''))
,sum(decode(date,'2010-5',record,''))
,sum(decode(date,'2010-6',record,''))
,sum(decode(date,'2010-7',record,''))
--同样根据需要写N条sum(decode(....))
from tablexxx group
by
part 参考技术B 如果你想要的输出是以date数据为列名,以part数据为行名,显示record的数据于表中,可用PIVOT做。下面例子是思路:
SELECT
[part],[d1],[d2],[d3],
...
FROM
(
SELECT
[date]
as
d,[part],[record]
FROM
[your_table]
)
AS
Dvtbl
PIVOT
(
MAX([record])
FOR
[d]
IN
(
[d1],
[d2],
[d3],
.... )
)
AS
Pvt
对“SELECT
[date]
as
d
”中的[date]进行处理(比如用相应的Date函数如datepart),就可以变幻出你所要设定的(按天,按月,按季度,按年)。d1,
d2,
d3,
....等等就是与[date]对应于的d的数据。
这只是个思路,具体写法根据你设定方案而有些不同。
sql 按月份统计数据的SQL语句
以上是关于SQL 按时间统计的主要内容,如果未能解决你的问题,请参考以下文章