Как объединить GROUP BY, ORDER BY и HAVING
Как правильно скомпоновать это утверждение.
SELECT *, COUNT(*)
FROM user_log
GROUP BY Email
ORDER BY UpdateDate DESC
HAVING COUNT(*) > 1
Сообщите мне
Ответы
Ответ 1
ORDER BY
всегда последний...
Однако вам нужно выбрать поля, в которых вы НАСТОЯТЕЛЬНО ХОТИТЕ, затем выберите только те и группируйте их. SELECT *
и GROUP BY Email
предоставят вам RANDOM VALUES для всех полей, но Email
. Большинство RDBMS даже не позволят вам сделать это из-за проблем, которые он создает, но MySQL является исключением.
SELECT Email, COUNT(*)
FROM user_log
GROUP BY Email
HAVING COUNT(*) > 1
ORDER BY UpdateDate DESC
Ответ 2
Ваш код должен содержать WHILE
до group by
и having
:
SELECT Email, COUNT(*)
FROM user_log
WHILE Email IS NOT NULL
GROUP BY Email
HAVING COUNT(*) > 1
ORDER BY UpdateDate DESC
Ответ 3
Шаги для использования группы путем, имея By и Order by...
Select Attitude ,count(*) from Person
group by person
HAving PersonAttitude='cool and friendly'
Order by PersonName.