Я новичок в SQL, который отделился от ряда примеров, которые относятся к тому, что я пытаюсь получить, но, похоже, не могут собрать все части , или даже подтвердить, выполнимо ли это в одном запросе. Моя Пример структуры данных:Запрос MySQL для нескольких счетчиков, возвращаемых для переменных диапазонов дат
Таблица: пользователя Поля: 'ID' (целое число) и 'дата_начала' (дата в формате ГГГГ-ММ-ДД)
Я пытаюсь написать один запрос, чтобы вернуть список счетчиков ('id'), где их «start_date» попадает в последний финансовый год с 1 июня по 31 мая. Однако больше, чем я хотел бы возврат с листингом предыдущих финансовых лет. Лучшее, что я был в состоянии собрать вместе:
SELECT COUNT(user.id) As "Total Members" FROM user WHERE user.start_date BETWEEN '2010-06-01' and '2011-05-31' UNION
SELECT COUNT(user.id) FROM user WHERE user.start_date BETWEEN '2011-06-01' and '2012-05-31' UNION
SELECT COUNT(user.id) FROM user WHERE user.start_date BETWEEN '2012-06-01' and '2013-05-31' UNION
SELECT COUNT(user.id) FROM user WHERE user.start_date BETWEEN '2013-06-01' and '2014-05-31' UNION
SELECT COUNT(user.id) FROM user WHERE user.start_date BETWEEN '2014-06-01' and '2015-05-31' UNION
SELECT COUNT(user.id) FROM user WHERE user.start_date BETWEEN '2015-06-01' and DATE(CURDATE())
Есть две проблем с этим, кроме этого, кажется безвкусным. Во-первых, в то время как он делает возвращает правильное количество в колонке, мне нужно добавить ссылку год в соседней колонке, чтобы получить что-то вдоль линий:
Fiscal Year | Total Members
----------------------------
2011 | ####
2012 | ####
2013 | ####
2014 | ####
2015 | ####
CURRENT | ####
и текущий запрос будет возвращать только Всего пользователей , И, во-вторых, я пытаюсь создать это примерно 40 лет назад (из 150 000 записей о членах), и я чувствую, что может быть лучший способ, используя модификатор на какой-либо функции года вместо жесткого кодирования диапазонов (ГОД -1, ГОД -2 и т. Д.). Думая, что логически я также вижу потенциальную проблему с получением правильной ссылки, возвращенной с правильным диапазоном, без чрезмерного усложнения. Любая помощь или совет будут очень признательны. Я признаю свои ограничения, и если то, что я ищу для написания, слишком сложно для поддержания, я могу придерживаться существующего списка примеров (который возвращается еще на 40 лет), если это необходимо. Заранее благодарю всех, кто вносит свой вклад!