我有一张桌子:
Subscriptions (idsub, dstart, dend, #idk)
dstart是购买订阅的日期(数据类型:日期)
我需要计算今年(或最好是-选择的年份)每个月购买了多少订阅。我知道应该用COUNT完成,但是我刚开始学习SQL,并且在“每个月”这一部分都在挣扎。
我正在使用Postgresql
感谢帮助
我强烈建议这样编写查询:
SELECT DATE_TRUNC('month', dstart) as yyyymm COUNT(*) total
FROM Subscriptions
WHERE dstart >= DATE_TRUNC('year', now()) AND
dstart < DATE_TRUNC('year', now()) + INTERVAL '1 YEAR'
GROUP BY yyyymm
ORDER BY yyyymm;
该查询的重要组成部分是WHERE
子句。尽管它看起来很复杂,但dstart
不是函数的参数。这有助于优化程序,并允许优化程序使用列上的索引(如果有的话)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句