Ale to jest zawartość tabeli czy tak mają wyglądać wyniki zapytania? Bo to mi wygląda na bardziej na zawartość tabelki lub ewentualnie wyniki zapytania Twojego tego podstawowego.
Ogólnie:
Chcesz naraz otrzymać liczbę wierszy i te wiersze w kolejności po podanym przez Ciebie polu. Albo podziel to na dwa zapytania:
SELECT * FROM tabela WHERE view_post = 1 ORDER BY field_order ASC;
-- i:
SELECT COUNT(id) AS size FROM tabela WHERE view_post = 1;
lub zostań przy tym pierwszym i policz wiersze w tabeli wynikowej w PHP po prostu.
Gdybyś chciał albo liczbę wyników albo same wyniki nie było by problemu ale jak chcesz i jedno i drugie to z braku laku nawet możesz pobrać wszystko tym zapytaniem pierwszym Swoim, wrzucić wyniki do jakiejś tablicy, przejechać po niej i policzyć wiersze a potem je ładnie wyświetlić.
W najgorszym (najmniej wydajnym chyba jednak podejściu) możesz dodać do swojego zapytania 3 joiny, które dodadzą liczbę wyników dla danego post_view do każdego wiersza wyniku... ale ja to stanowczo odradzam:
SELECT *, COUNT(a.id) AS size1, COUNT(b.id) AS size2, COUNT(c.id) AS size3 FROM `tabela`
JOIN tabela a ON a.view_post = 1
JOIN tabela b ON b.view_post = 2
JOIN tabela c ON c.view_post = 3
ORDER BY view_post ASC, field_order ASC
uzyskasz przykładowo coś takiego:
Kod
id | view_post | size1 | size2 | size3
1 | 1 | 2 | 3 | 4
2 | 1 | 2 | 3 | 4
3 | 2 | 2 | 3 | 4
... itd ...
Zamiast JOIN możesz też użyć podzapytań... Lecz czy tak czy inaczej - to są antywzorce i tak się robić nie powinno

EDIT: błąd w zapytanku