我有一个查询,从总体上返回我需要的百分比:
SELECT
CAST(((count(LOWER(`q3`)='no')/(select count(`q3`) from `data`))*100) as decimal (10,2))
FROM `data`
WHERE LOWER(`q3`)='no'
这将返回no
在列中说出q3
且准确的百分比(针对在Excel中运行数字进行验证)(q3的每条记录均包含“是”或“否”)。
但是,我想按月份和位置在Google图表中显示此数据,因此我对查询进行了一些构建:
SELECT
DATE_FORMAT(date_submitted,'%b-%y') AS 'Month',
CAST(((count(LOWER(`q3`)='no')/(select count(`q3`) from `data`))*100) as decimal (10,2)) AS 'MSO'
FROM `data`
WHERE LOWER(`q3`)='no' AND store_list IN (5902)
GROUP BY YEAR(date_submitted), MONTH(date_submitted)
ORDER BY YEAR(date_submitted) ASC, MONTH(date_submitted) ASC
这些数字并不正确,将位置删除(此部分将在显示图表的最终网站中被替换,因此它是一个带有一个我喜欢的数字的IN看起来是错误的,但可能是多个数字)仍然给我错误的数字按月总计,拿出当月的东西给我的位置总计有误(因此,自然而然地把它们都放在上面是根本行不通的)。
在这个上抚摸着胡须,但不确定我要去哪里,基本上需要输出为以下Google图表格式:
但是我得到的数字是19年5月19日1.69、19年6月19日0.56和19年7月19日6.18 =(
感谢上面的@WhiteHat告诉我这个问题,我的计数没有用(可能是MariaDB的事情,我用Google搜索过的MySQL格式尝试了它们,但是没有用),因此可以选择案例似乎可以解决问题:
SELECT
DATE_FORMAT(date_submitted,'%b-%y') AS 'Month',
CAST(((SUM(CASE WHEN LOWER(`q3`) = 'no' THEN 1 ELSE 0 END)/COUNT(*))*100) as decimal (10,2)) AS 'MSO'
FROM `data`
WHERE store_list IN (5902)
GROUP BY YEAR(date_submitted), MONTH(date_submitted)
ORDER BY YEAR(date_submitted) ASC, MONTH(date_submitted) ASC
如果有人在Google上遇到此问题,这就是我解决的方法,感谢您与我交流!
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句