У меня есть запрос, который возвращает процент, который мне нужен, на общем уровне:
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 содержит Да или Нет для каждой записи).
Однако я хочу отобразить эти данные в гугл-графике по месяцам и местоположениям, поэтому я немного увеличил запрос:
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:
макет диаграммы Google
Но я получаю цифры 19 мая 1.69, 19 июня 0.56 и 19 июля 6.18 = (