Да, count является агрегатным оператором, который возвращает только одну строку (без предложения group by)
Может быть, сделать два отдельных запроса?Нет смысла заставлять строку возвращать данные и общее количество строк, потому что эти данные не принадлежат друг другу.
Если вы действительно этого хотите, вы можете сделать что-то вроде этого:
SELECT *, (select count(*) FROM notis WHERE cid=20) AS count FROM notis WHERE cid=20 ORDER BY nid DESC LIMIT 0,3
или это:
SELECT N.*, C.total from notis N join (select count(*) total FROM notis WHERE cid=20) C WHERE cid=20) AS count FROM notis WHERE cid=20 ORDER BY nid DESC LIMIT 0,3
С отклонениями во вложенном выражении в зависимости от вашего диалекта SQL.