MySQL Google 个图表的 AVG 列
MySQL AVG columns for Google Charts
因此,对于 google 图表,我需要以下格式的数据:
+--------+---------+---------+---------+
| Month | Store A | Store B | Store C |
+--------+---------+---------+---------+
| May-19 | 9.5 | 9.4 | 8.8 |
| Jun-19 | 7.9 | 9.4 | 7.2 |
| Jul-19 | 9 | 9.3 | 8.8 |
+--------+---------+---------+---------+
我正在努力格式化我的 SQL 查询来管理它:
SELECT
DATE_FORMAT(d.date_submitted,'%b-%y') AS 'Month',
s.name as 'Store',
FORMAT(AVG(d.q1),1) AS 'Satisfaction'
FROM data d
INNER JOIN store_list s ON d.store_list=s.store_id
WHERE d.store_list IN (1,2,3)
GROUP BY store_list, YEAR(d.date_submitted), MONTH(d.date_submitted)
ORDER BY store_list,YEAR(d.date_submitted) ASC, MONTH(d.date_submitted) ASC
这给了我数据,但布局不对。
+--------+---------+--------------+
| Month | Store | Satisfaction |
+--------+---------+--------------+
| May-19 | Store A | 9.5 |
| Jun-19 | Store A | 7.9 |
| Jul-19 | Store A | 9 |
| May-19 | Store B | 9.4 |
| Jun-19 | Store B | 9.4 |
| Jul-19 | Store B | 9.3 |
| May-19 | Store C | 8.8 |
| Jun-19 | Store C | 7.2 |
| Jul-19 | Store C | 8.8 |
+--------+---------+--------------+
谷歌搜索给了我这个作为一个选项,这是一个布局 google 图表可以使用,但数据完全错误:
SELECT
DATE_FORMAT(date_submitted,'%b-%y') AS 'Month',
IF(store_list=1,FORMAT(AVG(q1),1),NULL) AS 'Store A',
IF(store_list=2,FORMAT(AVG(q1),1),NULL) AS 'Store B',
IF(store_list=3,FORMAT(AVG(q1),1),NULL) AS 'Store C'
FROM data
GROUP BY YEAR(date_submitted), MONTH(date_submitted)
ORDER BY YEAR(date_submitted) ASC, MONTH(date_submitted) ASC
+--------+---------+---------+---------+
| Month | Store A | Store B | Store C |
+--------+---------+---------+---------+
| NULL | NULL | NULL | NULL |
| May-19 | 8.8 | NULL | NULL |
| Jun-19 | 8.7 | NULL | NULL |
| Jul-19 | NULL | 9.2 | NULL |
+--------+---------+---------+---------+
我猜测 IF 和 AVG 不能很好地协同工作,但不确定我还能如何将我的数据放入正确的布局中..
[编辑]
对于我目前使用的单个商店:
<?php
$sql = "SELECT COUNT(*) as Base, DATE_FORMAT(date_submitted,'%b-%y') AS 'Month', FORMAT(AVG(q1),1) AS 'Satisfaction' FROM data WHERE store_list IN (" . $user_stores . ") GROUP BY YEAR(date_submitted), MONTH(date_submitted) ORDER BY YEAR(date_submitted) ASC, MONTH(date_submitted) ASC";
$Sat = mysqli_query($conn,$sql);
while($row = mysqli_fetch_array($Sat)){
echo "['".$row['Month']."',".$row['Satisfaction'].",'Satisfaction: ".$row['Satisfaction']."\nBase: ".$row['Base']."'],";
}
?>
这与我的 Google 图表代码配合得很好,我不太了解 PHP(在 google 上捡到的)所以也许还有另一种方法可以满足MySQL 输出到 Google 图表 - 这样我就可以 return 带有工作代码的数组,然后将该数组按摩到 Google 在 SQL 之外需要的内容?
啊,我的 IF 在 AVG 的外面而不是里面:
SELECT
DATE_FORMAT(date_submitted,'%b-%y') AS 'Month',
FORMAT(AVG(CASE WHEN store_list = 1 THEN q1 ELSE NULL END),1) AS 'Store A',
FORMAT(AVG(CASE WHEN store_list = 2 THEN q1 ELSE NULL END),1) AS 'Store B',
FORMAT(AVG(CASE WHEN store_list = 3 THEN q1 ELSE NULL END),1) AS 'Store C'
FROM data
WHERE store_list IN (1,2,3)
GROUP BY YEAR(date_submitted), MONTH(date_submitted)
ORDER BY YEAR(date_submitted) ASC, MONTH(date_submitted) ASC
这给了我:
+--------+---------+---------+---------+
| Month | Store A | Store B | Store C |
+--------+---------+---------+---------+
|May-19 | 9.5| 9.4| 8.8|
|Jun-19 | 7.9| 9.4| 7.2|
|Jul-19 | 9| 9.3| 8.8|
+--------+---------+---------+---------+
现在研究如何做基础并在每个点动态插入相关商店,并为 N 家商店这样做......永无止境 - 希望这对某人有所帮助!
因此,对于 google 图表,我需要以下格式的数据:
+--------+---------+---------+---------+
| Month | Store A | Store B | Store C |
+--------+---------+---------+---------+
| May-19 | 9.5 | 9.4 | 8.8 |
| Jun-19 | 7.9 | 9.4 | 7.2 |
| Jul-19 | 9 | 9.3 | 8.8 |
+--------+---------+---------+---------+
我正在努力格式化我的 SQL 查询来管理它:
SELECT
DATE_FORMAT(d.date_submitted,'%b-%y') AS 'Month',
s.name as 'Store',
FORMAT(AVG(d.q1),1) AS 'Satisfaction'
FROM data d
INNER JOIN store_list s ON d.store_list=s.store_id
WHERE d.store_list IN (1,2,3)
GROUP BY store_list, YEAR(d.date_submitted), MONTH(d.date_submitted)
ORDER BY store_list,YEAR(d.date_submitted) ASC, MONTH(d.date_submitted) ASC
这给了我数据,但布局不对。
+--------+---------+--------------+
| Month | Store | Satisfaction |
+--------+---------+--------------+
| May-19 | Store A | 9.5 |
| Jun-19 | Store A | 7.9 |
| Jul-19 | Store A | 9 |
| May-19 | Store B | 9.4 |
| Jun-19 | Store B | 9.4 |
| Jul-19 | Store B | 9.3 |
| May-19 | Store C | 8.8 |
| Jun-19 | Store C | 7.2 |
| Jul-19 | Store C | 8.8 |
+--------+---------+--------------+
谷歌搜索给了我这个作为一个选项,这是一个布局 google 图表可以使用,但数据完全错误:
SELECT
DATE_FORMAT(date_submitted,'%b-%y') AS 'Month',
IF(store_list=1,FORMAT(AVG(q1),1),NULL) AS 'Store A',
IF(store_list=2,FORMAT(AVG(q1),1),NULL) AS 'Store B',
IF(store_list=3,FORMAT(AVG(q1),1),NULL) AS 'Store C'
FROM data
GROUP BY YEAR(date_submitted), MONTH(date_submitted)
ORDER BY YEAR(date_submitted) ASC, MONTH(date_submitted) ASC
+--------+---------+---------+---------+
| Month | Store A | Store B | Store C |
+--------+---------+---------+---------+
| NULL | NULL | NULL | NULL |
| May-19 | 8.8 | NULL | NULL |
| Jun-19 | 8.7 | NULL | NULL |
| Jul-19 | NULL | 9.2 | NULL |
+--------+---------+---------+---------+
我猜测 IF 和 AVG 不能很好地协同工作,但不确定我还能如何将我的数据放入正确的布局中..
[编辑]
对于我目前使用的单个商店:
<?php
$sql = "SELECT COUNT(*) as Base, DATE_FORMAT(date_submitted,'%b-%y') AS 'Month', FORMAT(AVG(q1),1) AS 'Satisfaction' FROM data WHERE store_list IN (" . $user_stores . ") GROUP BY YEAR(date_submitted), MONTH(date_submitted) ORDER BY YEAR(date_submitted) ASC, MONTH(date_submitted) ASC";
$Sat = mysqli_query($conn,$sql);
while($row = mysqli_fetch_array($Sat)){
echo "['".$row['Month']."',".$row['Satisfaction'].",'Satisfaction: ".$row['Satisfaction']."\nBase: ".$row['Base']."'],";
}
?>
这与我的 Google 图表代码配合得很好,我不太了解 PHP(在 google 上捡到的)所以也许还有另一种方法可以满足MySQL 输出到 Google 图表 - 这样我就可以 return 带有工作代码的数组,然后将该数组按摩到 Google 在 SQL 之外需要的内容?
啊,我的 IF 在 AVG 的外面而不是里面:
SELECT
DATE_FORMAT(date_submitted,'%b-%y') AS 'Month',
FORMAT(AVG(CASE WHEN store_list = 1 THEN q1 ELSE NULL END),1) AS 'Store A',
FORMAT(AVG(CASE WHEN store_list = 2 THEN q1 ELSE NULL END),1) AS 'Store B',
FORMAT(AVG(CASE WHEN store_list = 3 THEN q1 ELSE NULL END),1) AS 'Store C'
FROM data
WHERE store_list IN (1,2,3)
GROUP BY YEAR(date_submitted), MONTH(date_submitted)
ORDER BY YEAR(date_submitted) ASC, MONTH(date_submitted) ASC
这给了我:
+--------+---------+---------+---------+
| Month | Store A | Store B | Store C |
+--------+---------+---------+---------+
|May-19 | 9.5| 9.4| 8.8|
|Jun-19 | 7.9| 9.4| 7.2|
|Jul-19 | 9| 9.3| 8.8|
+--------+---------+---------+---------+
现在研究如何做基础并在每个点动态插入相关商店,并为 N 家商店这样做......永无止境 - 希望这对某人有所帮助!