Вот мой запрос MySQL для подсчета повторяющегося элемента,
SELECT
count(item),
item,
name,
area
FROM jmr
WHERE starttime LIKE '2024-05-03%' and area='DC'
group by item, name;
Результат:
Основываясь на приведенном выше запросе и результате, по праву элемент 24050506S должен иметь 2 счетчика, но mysql пропускает 1 из них.
Это вызвано моим запросом или что-то не так с MySQL?
Неполная группировка. Либо добавьте area к выражению группировки, либо используйте 'DC' AS area (в соответствии с вашим ГДЕ) в выходном списке. И включите ONLY_FULL_GROUP_BY.
Я бы предложил убрать area из результатов. В любом случае это избыточно из-за статического предложения WHERE.
Товар 24050C24S тоже с другим названием, но он учитывается. Если я не группирую элемент и имя, выдается ошибка 1055, exp#3.
«Товар 24050C24S также с другим именем, но он учитывается»... это означает, что есть две строки с DC-STD-04 и одна с DC-STD-03
Это одна из особенностей MySQL. В других СУБД вы всегда получаете сообщение об ошибке, а не потенциально бесполезные результаты. Например, в PostgreSQL: «столбец «jmr.area» должен присутствовать в предложении GROUP BY или использоваться в агрегатной функции». См. Обработка MySQL GROUP BY.
Покажите исходные данные, на которых вы выполняете этот запрос. Но если вы думаете, что две строки результатов с 24050506S следует сгруппировать вместе, вы ошибаетесь. Потому что вы группируете item и name, и эти две строки имеют разное значение name.


Нет ввода табличной информации...
По запросу я попытался это исправить. Вы хотите подсчитать предметы, сгруппировав их по предметам и названиям, где время начала — «03.05.2024», а регион — «DC».
Итак, запрос:
SELECT
count(item) over(partition by item) as count,
item,
name,
area
FROM jmr
WHERE starttime LIKE '2024-05-03%' and area='DC'
group by item, name
order by item, name;
Вывод: db<>fiddle
Что этот ответ должен нам сказать?
@ArtBindu Не говорите людям, что они должны голосовать за ответы, это их собственное решение.
Я не понимаю, почему люди голосуют отрицательно.
щелкните стрелку вверх, она никогда не показывает +, только -1 или -2, нет 1, 2, без понятия
Вы группируете по
itemиname(и неявно поarea). Поскольку значенияnameразличаются, вы получаете отдельные строки.