Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql中的平均百分比值_Mysql_Select_Sum_Average - Fatal编程技术网

mysql中的平均百分比值

mysql中的平均百分比值,mysql,select,sum,average,Mysql,Select,Sum,Average,我试图将计数的值除以子查询的值,然后乘以100以获得其百分比。下面的代码有效 SELECT data, rota as rt, COUNT(cliente_id) / ( SELECT COUNT(DISTINCT cliente_id) FROM vw_grafico WHERE rota = rt ) * 100 ) AS porcentagem FROM vw_grafico WHERE WEEKDAY(data)+1 = rota AND YEAR(data) = 20

我试图将计数的值除以子查询的值,然后乘以100以获得其百分比。下面的代码有效

SELECT data, rota as rt, COUNT(cliente_id) / 
(
 SELECT COUNT(DISTINCT cliente_id)
 FROM vw_grafico
 WHERE rota = rt  
) * 100 ) AS porcentagem

FROM vw_grafico
WHERE WEEKDAY(data)+1  = rota 
AND YEAR(data) = 2013
GROUP BY month(data)
ORDER BY data ASC
…但是,除此之外,我需要每月的平均值,这是我的问题。。。尝试执行此操作时出现错误“组函数的使用无效”:

SELECT data, rota as rt, AVG(COUNT(cliente_id) / 
(
 SELECT COUNT(DISTINCT cliente_id)
 FROM vw_grafico
 WHERE rota = rt  
) * 100 ) AS porcentagem

FROM vw_grafico
WHERE WEEKDAY(data)+1 = rota 
AND YEAR(data) = 2013
GROUP BY month(data)
ORDER BY data ASC
我应该如何解决此错误

Select list fields( not aggregates) must be Subset of Group by List that in your query this is not true and your error is for that.
在您的查询中:

SELECT data, rota as rt, AVG(COUNT(cliente_id) / 
(
 SELECT COUNT(DISTINCT cliente_id)
 FROM vw_grafico
 WHERE rota = rt  
) * 100 ) AS porcentagem

FROM vw_grafico
WHERE WEEKDAY(data)+1 = rota 
AND YEAR(data) = 2013
GROUP BY month(data)
ORDER BY data ASC
选择列表为:

data, rota as rt
及 组别名单如下:

month(data)
选择列表字段不是组列表的子集。所有选择列表字段必须位于组列表中,例如:

SELECT month(data), rota as rt, AVG(COUNT(cliente_id) / 
(
 SELECT COUNT(DISTINCT cliente_id)
 FROM vw_grafico
 WHERE rota = rt  
) * 100 ) AS porcentagem

FROM vw_grafico
WHERE WEEKDAY(data)+1 = rota 
AND YEAR(data) = 2013
GROUP BY month(data), rota
ORDER BY data ASC

我不明白你说的我的意思只是语法规则而不是考试我想了想,哈哈,但我还没有成功