как выбрать для подсчета с MySQL

0

Я хочу рассчитывать с помощью select, count и group by. он работает с MariaDB, но не работает с MySQL.

Я не знаю, работает ли эта версия mariadb или mysql, но этот код работает в localhost, но не работает в моем vps.

здесь мой код

SELECT date, COUNT(id_master_post) FROM master_post GROUP BY DAY(date) ASC;

ошибка я получаю.

SELECT date, COUNT (id_master_post) FROM master_post GROUP BY DAY (дата) ASC LIMIT 0, 25 MySQL заявляет: Документация

# 1055 - Выражение # 1 списка SELECT не находится в предложении GROUP BY и содержит неагрегированный столбец 'piratefiles.master_post.date', который не зависит от функциональности в столбцах в предложении GROUP BY; это несовместимо с sql_mode = only_full_group_by

Теги:

1 ответ

2

Это обычная ошибка в MySQL, которая имеет разные режимы и, следовательно, различные правила, которые могут быть или не могут быть применены. В вашем случае вы выбираете столбец, который не отображается в предложении GROUP BY (а также не находится внутри агрегатной функции). Чтобы исправить это, сделайте столбец выбранным и агрегированным таким же, то есть используйте это:

SELECT DAY(date), COUNT(id_master_post)
FROM master_post
GROUP BY DAY(date);

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

SELECT date, COUNT(id_master_post)
FROM master_post
GROUP BY date;
  • 0
    возможно ли показывать полную дату, а не просто день этой даты? Я использую datetime . если я использую только дату, он будет считать все это, например, если я отправляю 20 сообщений в день, он будет записывать 20 данных, но если использовать день (дату), он будет записывать только 1 данные
  • 0
    Я не понимаю ваш вопрос.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню