大家好,大家好. 直接回答我的问题.
我的设想是这样的.我有一张桌子
- 如果第2列有数据,我需要获取第1列的sum(仅是一个示例
- 如果第二列是空的,我需要得到第一列的average(只是一个例子)
- 我需要它按名称分组,并有每个用户反映的计算
因此,我对列1进行了两种不同的计算,计算基于列2是否包含数据或空值
这是到目前为止我得到的结果,我能够得到总和,但当平均数达到时,我很难弄清楚.
SELECT T1.user_name, T1.Good_Hours, T2,*
(
SELECT user_name, SEC_TO_TIME( SUM( TIME_TO_SEC( total_tat ) ) ) as Good_Hours
FROM Table 1
WHERE etc_type = "YES"
WHERE date_time BETWEEN "(DATETIME example Only)" AND "(DATETIME example Only)"
AND column2 IS NULL
GROUP BY user_name
) as T1,
(
SELECT COUNT(column2) , SEC_TO_TIME(AVG(TIME_TO_SEC(total_tat))) as NICE_TIME
FROM Table 1
WHERE etc_type = "YES"
WHERE date_time BETWEEN "(DATETIME example Only)" AND "(DATETIME example Only)"
AND column2 IS NOT NULL
GROUP BY user_name
) as T2
到目前为止,我得到了正确的Good_Hours,但是第二个子 Select 只返回第一条记录,并对整个表重复它.
是不是有什么是我错过的,也许是我忽略了它.
如果可能的话,我在想结果是这样的.
user_name - missed_calls - Good_Hours - NICE_TIME
John Doe 0 00:01:00 08:00:00
Jane Doe 5 00:14:00 29:00:00
Hugo Doe 9 00:47:00 00:10:00
但我得到的是这样的
user_name - missed_calls - Good_Hours - NICE_TIME
John Doe 0 00:01:00 08:00:00
Jane Doe 5 00:14:00 08:00:00
Hugo Doe 9 00:47:00 08:00:00
我所要求的只是一些建议.谢谢.
了解更多信息
顶部的表格是包含原始数据的表格 下面的表格是我一直想做的结果