我有一个表模式,本质上是一堆带有日期时间字段的交易信息
TRANSACTION (< transactionid >, amount, when)
我需要生成每月的交易总数,即 SUM(金额),但我对如何分组感到困惑。 SQL 中的每一行都应包含每月总计(因此一行代表 Jan 09、Feb 09...Jan 2010 等)。我想我可能必须通过代码生成表,但想了解是否有办法使用 SQL 来解决这个问题。
任何帮助,将不胜感激! (使用MySQL 5.3、PHP5)
您需要按摘录进行分组。
SELECT
SUM(amount)
FROM
transaction
GROUP BY
EXTRACT(MONTH FROM when),
EXTRACT(YEAR FROM when)
如果您需要这些列,那么
SELECT
EXTRACT(MONTH FROM when) as month,
EXTRACT(YEAR FROM when) as year,
SUM(amount)
FROM
transaction
GROUP BY
month,
year
当然你可以追加ORDER BY
并使用短名称:
SELECT
EXTRACT(MONTH FROM when) as month,
EXTRACT(YEAR FROM when) as year,
SUM(amount)
FROM
transaction
GROUP BY
month,
year
ORDER BY
year DESC,
month DESC
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)