我有一个查询,它从总体上返回我需要的百分比:
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 =(
答案 0 :(得分:1)
感谢上面的@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上遇到此问题,这就是我解决的方法,感谢您与我交流!