Sql 如何按时间戳字段分组?
我在postgresql中有一个表,它是warhouse活动的日志:Sql 如何按时间戳字段分组?,sql,postgresql,Sql,Postgresql,我在postgresql中有一个表,它是warhouse活动的日志: productid action qty time 5436 in 30 2014-09-18 11:46:25.113862 5436 in 30 2014-09-18 11:46:25.113862 5436 in 30 2015-10-18 08:13:11.124452 5436
productid action qty time
5436 in 30 2014-09-18 11:46:25.113862
5436 in 30 2014-09-18 11:46:25.113862
5436 in 30 2015-10-18 08:13:11.124452
5436 in 30 2015-10-18 10:15:22.541125
2048 in 20 2014-09-18 11:46:35.873401
2048 in 80 2014-09-18 11:46:35.873401
2048 out 20 2014-09-18 11:46:35.873401
时间
是不带时区的时间戳
我想获得每个productid
每天的数量(仅在中)的总和。
对于上表,结果将为:
productid qty date
5436 60 2014-09-18
5436 60 2015-10-18
2048 80 2014-09-18
通常我会做:
Select sum(qty)
from A
where action like 'in'
group by (partid,time)
但是,这将不起作用,因为它不知道产品的2015-10-18 08:13:11.124452
和2015-10-18 10:15:22.541125
应该组合在一起。这应该为您做到:
select productid, time::DATE as dt, sum(qty)
from tablename
where action like 'in'
group by productid, time::DATE
请注意,我们正在将您的时间戳转换为日期,以获得所需的结果
SQLFiddle示例:这应该可以帮助您:
select productid, time::DATE as dt, sum(qty)
from tablename
where action like 'in'
group by productid, time::DATE
请注意,我们正在将您的时间戳转换为日期,以获得所需的结果
SQLFiddle示例:这应该可以帮助您:
select productid, time::DATE as dt, sum(qty)
from tablename
where action like 'in'
group by productid, time::DATE
请注意,我们正在将您的时间戳转换为日期,以获得所需的结果
SQLFiddle示例:这应该可以帮助您:
select productid, time::DATE as dt, sum(qty)
from tablename
where action like 'in'
group by productid, time::DATE
请注意,我们正在将您的时间戳转换为日期,以获得所需的结果
SQLFiddle示例:
您能用预期的输出更新您的问题吗?这将有助于理解你真正想要什么。您的输出当前未显示时间戳。您能用预期的输出更新您的问题吗?这将有助于理解你真正想要什么。您的输出当前未显示时间戳。您能用预期的输出更新您的问题吗?这将有助于理解你真正想要什么。您的输出当前未显示时间戳。您能用预期的输出更新您的问题吗?这将有助于理解你真正想要什么。您的输出当前未指示时间戳。