这是我正在使用的SQL。但是平均值不是针对不同的职位编号,而是全部使用。
我想按客户获取平均工作时间和独特工作的总数。平均时间只能基于唯一的工作编号。
SELECT CUSTOMER, COUNT(DISTINCT JOB_NO) AS JOB_COUNT, AVG(WORK_TIME) AS WT
FROM CYCLE_TIME
GROUP BY CUSTOMER
任何帮助将不胜感激。
查尔斯,我使用了您的第一个查询,并与一个客户进行了测试。使用以下WT值,我为客户获得5个工作。
28.95, 24.72, 2.56, 15.14, 8.94
。平均值为16.06
。如果我使用以下查询并且仅按客户分组,则平均值(WT)最终为22.39。我不确定那里发生了什么。
SELECT CUSTOMER, JOB_NO, AVG(WORK_TIME) AS WT
FROM CYCLE_TIME
WHERE CUSTOMER='customer_a'
GROUP BY CUSTOMER
最佳答案
对基于AVG
的SUM()/COUNT(DISTINCT)
使用您自己的计算:
SELECT
CUSTOMER,
COUNT(DISTINCT JOB_NO) AS JOB_COUNT,
SUM(WORK_TIME)/COUNT(DISTINCT JOB_NO) AS WT
FROM CYCLE_TIME
GROUP BY CUSTOMER
关于mysql - 根据不同的值对一列进行平均,对其他列进行分组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23377255/