合并重复行,求和时间并获得平均时间或求和平均时间

Merge duplicate rows, sum time and get average time or sum average time

听起来有点复杂,我正在为查询而苦苦挣扎。希望你能帮助我。

我需要按名称或日期合并,计数和时间列应该是总和 (02:05:00),aht 列应该是两个值的平均值。

我没有找到解决方案,因为所有的方法都是按视图分组,但我需要将数据放在一行中,然后删除第二行...

选择 SUM 和 AVERAGE 并不难,见下文 fiddle:

SELECT
   name,
   `date`,
   sum(`count`) as 'count',
   SEC_TO_TIME(sum(TIME_TO_SEC(`time`))) as 'time',
   SEC_TO_TIME(avg(TIME_TO_SEC(aht)))  as aht
FROM table1
GROUP BY
   name,
   `date`;

DBFIDDLE

输出:

name date count time aht
Name 2022-03-28 36 02:05:00 00:03:11.0000

您可以添加这个新行,然后删除按 namedate.

分组时计数 >=2 的所有行