MySQL ГРУППИРУЕТ ПО функции и также возвращает значение функции в результатах

#mysql #group-by

#mysql #группировать по

Вопрос:

Я пытаюсь сгруппировать по году, месяцу, дню временной метки. Я могу справиться с этим, но я не могу вернуть Год, месяц, день. Следующий SQL-код не работает

 SELECT 
count(ID), 
YEAR(user_registered) as reg_year, 
MONTH(users.user_registered) as reg_month, 
DAYOFMONTH(users.user_registered) as reg_day
FROM users
WHERE 
  user_registered > '2020-11-31' 
group by 
  YEAR(users.user_registered), 
  MONTH(users.user_registered), 
  DAYOFMONTH(users.user_registered);
 

Комментарии:

1. Ваш запрос работает: db-fiddle.com/f/w96jT7NPTYA4DJ45Z7vtCm/0

Ответ №1:

Необходимо использовать псевдоним в group by.

 SELECT 
count(`ID`), 
YEAR(user_registered) as reg_year, 
MONTH(`user_registered`) as reg_month, 
DAYOFMONTH(`user_registered`) as reg_day
FROM `sf_users` 
WHERE 
  user_registered > '2020-11-31' 
group by 
  reg_year, 
  reg_month, 
  reg_day;
 

Комментарии:

1. 11-31 был отличный день