Tak, liczba jest operatorem agregującym, który zwraca tylko jeden wiersz (bez klauzuli group by)
Może zadać dwa oddzielne zapytania? Nie ma sensu, aby wiersz zwracał dane i całkowitą liczbę wierszy, ponieważ te dane nie należą do siebie.
Jeśli naprawdę tego chcesz, możesz zrobić coś takiego:
SELECT *, (select count(*) FROM notis WHERE cid=20) AS count FROM notis WHERE cid=20 ORDER BY nid DESC LIMIT 0,3
lub to:
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
Z wariancjami zagnieżdżonego wyrażenia w zależności od Twojego dialektu SQL.