Подсчет записей года и месяца из полей даты и времени - PullRequest
0 голосов
/ 16 ноября 2011

У меня проблема с построением запроса mysql:

У меня есть эта таблица "tSubscribeers", где я храню подписчиков для моего списка рассылки.

Таблица выглядит так (упрощенно):

--
-- 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, fDateUnsubscribeed даты, подсчитать их и показать количество, отсортированное по месяцам и годам для группы подписчиков.

Я думаю, что этот SQL-запрос становится довольно сложным, и я просто не могу обойти его.Возможно ли это даже одним запросом?

1 Ответ

0 голосов
/ 16 ноября 2011

Вам понадобятся два отдельных запроса: один для подписки, другой для отмены подписки.

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...