Как рассчитать итоговую строку на MySQL по месяцам и годам - PullRequest
0 голосов
/ 06 марта 2020

Моя таблица базы данных содержит значение таким образом ИЗОБРАЖЕНИЕ ДЛЯ ТАБЛИЦЫ ДАННЫХ

Я хочу отследить одно и то же электронное письмо, которое использовалось более одного раза в течение определенного месяца и года. В приведенном выше сценарии электронное письмо, которое повторялось несколько раз, было sandeshphuya@gmail.com, jes@gmail.com и ramu@gmail.com для разных месяцев. Я хочу отследить повторение клиентов по их электронной почте за каждый месяц и год.

Я использую сейчас запрос

SELECT DATE_FORMAT(booked_on, '%Y-%m') as monthYear, email,
COUNT(*) AS 'Count'
FROM 'tablename'
GROUP BY email,DATE_FORMAT(booked_on, '%Y-%m') HAVING COUNT(*) > 1 ORDER BY `booked_on`;

GROUP BY email использовался, поскольку он генерировал повторное электронное письмо, а GROUP BY DATE_FORMAT(booked_on, '%Y'-%m') использовался для отслеживания общего количества повторных писем за каждый месяц / год.

Эти данные выводятся как

ИЗОБРАЖЕНИЕ ЗА ВЫБОР ЗАПРОСА

Как я могу отследить общее количество повторных писем за месяц и год? Ожидаемый результат:

РЕЗУЛЬТАТ РЕЗУЛЬТАТА

1 Ответ

2 голосов
/ 06 марта 2020

Вы можете использовать свой запрос в качестве подзапроса для новой группы:

select sub.monthYear,count(*)
from
    (SELECT DATE_FORMAT(booked_on, '%Y-%m') as monthYear, 
            email,
            COUNT(*) AS 'Count'
     FROM 'tablename'
     GROUP BY email,DATE_FORMAT(booked_on, '%Y-%m') 
              HAVING COUNT(*) > 1 
     ORDER BY `booked_on`) as sub
GROUP BY sub.monthYear
...