Вопрос в основном "неправильный". Проблема в том, что он запрашивает результаты на уровне ip, а затем запрашивает заказ по коду возврата. Но у данного IP может быть несколько кодов возврата, соответствующих критериям.
Одна правильная интерпретация заключается в том, что это действительно означает «группировать по ip и retcode»:
SELECT ipno, retcode, COUNT(ipno) AS Number_of_Requests
FROM WebLog
WHERE retcode) > 300
GROUP BY ipno
ORDER BY retcode DESC;
Другая правильная интерпретация заключается в том, что это означает заказ по максимальному ретрокоду для каждого IP:
SELECT ipno, COUNT(ipno) AS Number_of_Requests
FROM WebLog
WHERE retcode > 300
GROUP BY ipno
ORDER BY MAX(retcode) DESC;
Для этого запроса я бы включил GROUP_CONCAT(DISTINCT retcode)
, чтобы увидеть список таких кодов.
Если честно, я подозреваю, что запись вопроса, предназначенного для ORDER BY
, будет соответствовать количеству записей в журнале, и формулировка только что вышла из строя.