【发布时间】:2020-10-29 21:56:46
【问题描述】:
在 mariadb 安装的 phpmyadmin 中,我有一条 SQL 语句
SELECT `datepaid`, SUM(`total`) FROM `tblinvoices` WHERE `status` = "paid" AND `total` > 0 GROUP BY YEAR(datepaid)*100 + MONTH(datepaid) ORDER BY `datepaid` ASC
输出与预期一致,我得到按月分组的总计列表,按月排序。最后 5 行如下所示:
2020-06-09 13:01:31 4485.56
2020-07-07 12:36:25 4519.69
2020-08-03 13:02:29 3685.26
2020-09-26 05:49:25 4371.98
2020-10-10 16:47:32 5135.75
在所有行列表的底部,我勾选所有,然后点击导出(在结果下,而不是在顶部菜单中)。
在生成的 CSV 中,最后 5 行是
"2020-06-09 13:01:31","29.00"
"2020-07-07 12:36:25","130.50"
"2020-08-03 13:02:29","99.00"
"2020-09-26 05:49:25","385.00"
"2020-10-10 16:47:32","46.20"
看起来输出包含了组中的一行,而不是组总数。
我做错了什么(很可能)还是这是某种错误?
[更新]
根据@nbk 提供的信息,我找到了解决方案并学到了一些东西,INTO 命令
`INSERT INTO `another_table` SELECT `datepaid`, SUM(`total`) FROM `tblinvoices` WHERE `status` = "paid" AND `total` > 0 GROUP BY YEAR(datepaid)*100 + MONTH(datepaid) ORDER BY `datepaid` ASC
【问题讨论】:
-
您应该以同样的方式进行 GROUP BY 和 SELECT datepaid。
-
为什么nozt使用INTO outfile?
-
@jarlh 你能详细说明一下吗?
-
您 GROUP BY 值如 202010,但 SELECT 值如 2020-10-10 16:47:32。如果 2020 年 10 月有多个不同的 datepaid 值,您期望返回什么?
-
重点就在这里,用phpmyadmin导出时,列没有汇总
标签: mysql sql phpmyadmin