#mysql #sql #count #having-clause
#mysql #sql #подсчитайте #having-предложение
Вопрос:
У меня есть база данных с идентификатором пользователя, я хочу проверить общее количество раз, когда каждый идентификатор пользователя встречался, и извлечь только те, общее количество появлений которых нечетно.
Например, у меня есть «Sandra» с идентификатором 2 и появляется 5 раз, поскольку 5 нечетно, это приведет к извлечению всех данных подобным образом. Я попытался
SELECT L_UID, count(*) as count from tenter group by L_UID order by count DESC
Я смог получить подсчеты, но не смог проверить, являются ли они нечетными или нет.
Комментарии:
1. есть ли причина, по которой вы не показываете нам свой код, который производит множественные вставки
2. Точно так же, как в электронной коммерции, где конкретный идентификатор пользователя совершает несколько покупок, я хочу получить всех пользователей, количество покупок которых нечетно.
Ответ №1:
Вы должны установить условие в HAVING caluse:
SELECT L_UID, COUNT(*) AS count
FROM tenter
GROUP BY L_UID
HAVING count % 2 = 1
ORDER BY count DESC
Ответ №2:
Как в школе, вы делите if на 2 и смотрите на остальное, в математике это называется по модулю
SELECT L_UID, IF((count(*) %2) = 1,'odd', 'even') as count from tenter group by L_UID order by count DESC