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语句

SELECT count(ht_id) as c,FROM_UNIXTIME(apply_time,'%Y%m') as monthly FROM t_hunt_talents group by FROM_UNIXTIME(apply_time,'%Y%m');

以上是关于SQL 按时间统计的主要内容,如果未能解决你的问题,请参考以下文章

用sql语句按周按月按季按年统计

SQL按时间统计客户的月销售量和年销售量

mysql 按月份统计,sql 语句怎么写!

简单的sql分组统计

sql中如何把具体日期转化为按月排序?

SQL统计本日的更新数量