我在构建mysql查询时遇到问题:
我有这个表“tSubscribers”我存储了我的新闻邮件列表的订阅者。
表格如下(简化):
--
-- Table structure for tSubscriber
--
CREATE TABLE tSubscriber (
fId INT UNSIGNED NOT NULL AUTO_INCREMENT,
fSubscriberGroupId INT UNSIGNED NOT NULL,
fEmail VARCHAR(255) NOT NULL DEFAULT '',
fDateConfirmed DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
fDateUnsubscribed TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (fId),
INDEX (fSubscriberGroupId),
) ENGINE=MyISAM;
现在我想要完成的是一个图表,显示每个订阅者组每月的订阅和取消订阅。
所以我需要从fDateConfirmed,fDateUnsubscribed日期中提取年份和月份,计算它们并显示按订阅者组的月份和年份排序的计数。
我认为这个SQL查询变得非常复杂,我无法理解它。这甚至可以通过一个查询来实现。
答案 0 :(得分:0)
您需要两个单独的查询,一个用于订阅,另一个用于取消订阅。
SELECT COUNT(*), YEAR(fDateConfirmed), MONTH(fDateConfirmed) FROM tSubscriber GROUP BY YEAR(fDateConfirmed), MONTH(fDateConfirmed)
SELECT COUNT(*), YEAR(fDateUnsubscribed), MONTH(fDateUnsubscribe ) FROM tSubscriber GROUP BY YEAR(fDateUnsubscribed), MONTH(fDateUnsubscribed)