合并重复行,求和时间并获得平均时间或求和平均时间
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`;
输出:
name
date
count
time
aht
Name
2022-03-28
36
02:05:00
00:03:11.0000
您可以添加这个新行,然后删除按 name
和 date
.
分组时计数 >=2 的所有行
听起来有点复杂,我正在为查询而苦苦挣扎。希望你能帮助我。
我需要按名称或日期合并,计数和时间列应该是总和 (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`;
输出:
name | date | count | time | aht |
---|---|---|---|---|
Name | 2022-03-28 | 36 | 02:05:00 | 00:03:11.0000 |
您可以添加这个新行,然后删除按 name
和 date
.