Sql 如何按时间戳字段分组?

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

我在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         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示例:


您能用预期的输出更新您的问题吗?这将有助于理解你真正想要什么。您的输出当前未显示时间戳。您能用预期的输出更新您的问题吗?这将有助于理解你真正想要什么。您的输出当前未显示时间戳。您能用预期的输出更新您的问题吗?这将有助于理解你真正想要什么。您的输出当前未显示时间戳。您能用预期的输出更新您的问题吗?这将有助于理解你真正想要什么。您的输出当前未指示时间戳。