Mysql 按2个不同参数分组的时差
我想知道是否有人能帮我解决目前的问题 我有一个数据库表,它有以下列 我有不同的领域,可以有相同的产品,我想做的是总结不同产品在各自领域的差异。例如,在上表中,我将得到以下结果(区域1中的产品1总计为3分钟等) 开始列和停止列具有DATETIME数据类型 我尝试了sum(timediff(stop,start))并按产品对其进行分组,但这似乎不起作用 因此,我还想根据面积位求和,无论我输入什么,我总是得到181Mysql 按2个不同参数分组的时差,mysql,Mysql,我想知道是否有人能帮我解决目前的问题 我有一个数据库表,它有以下列 我有不同的领域,可以有相同的产品,我想做的是总结不同产品在各自领域的差异。例如,在上表中,我将得到以下结果(区域1中的产品1总计为3分钟等) 开始列和停止列具有DATETIME数据类型 我尝试了sum(timediff(stop,start))并按产品对其进行分组,但这似乎不起作用 因此,我还想根据面积位求和,无论我输入什么,我总是得到181 如果您能在这方面提供任何帮助,我将不胜感激。您只需按您所在的地区和产品进行分组,并计
如果您能在这方面提供任何帮助,我将不胜感激。您只需按您所在的地区和产品进行分组,并计算每个地区的时间。这里的答案应该是正确的。对于您的查询,您只需要以下内容:
select
area
,product
,SEC_TO_TIME(SUM(TIME_TO_SEC(`stop`) - TIME_TO_SEC(`start`))) as timediff
from products_in_area
group by area, product
如果您不想将最终结果显示为TIME
值(例如,您可以在调用应用程序中进行格式化),那么您的查询看起来会更干净一些:
select
area
,product
,SUM(TIMESTAMPDIFF(MINUTE, `start`, `stop`)) Minutes
from products_in_area
group by area, product
我对您的示例数据有点困惑:您实际上没有两列名为
start
,是吗?另外,对于前两行,第一列发生在第二列之前;对于最后两行,第一列发生在第二列之后。不知道我是怎么做到的?但是你是对的,一列是开始,另一列是停止,停止列总是发生在开始列之前。你的意思是start
列总是发生在stop
列之前吗?我有一个噩梦,但你是对的。顺便说一句,我试着跟随这个线程,但没有用
select
area
,product
,SUM(TIMESTAMPDIFF(MINUTE, `start`, `stop`)) Minutes
from products_in_area
group by area, product