< что-либо> | вид | uniq-c | вид-n
даст Вам количество всех различных случаев < что-либо>.
Часто, awk, sed, или сокращение помогают с парсингом данных в < что-либо>.
Вы можете попробовать с Group By, например:
SELECT count(cat_id), main_cat_name, cat_url FROM mf_main GROUP BY main_cat_name, cat_url ORDER BY main_cat_name
Правильное решение, я надеюсь:
Это то, что вы хотите :)
SELECT x.countt, main_cat_name, cat_url FROM mf_main, (select count(*) as countt FROM mf_main) as x ORDER BY main_cat_name
Если вы используете mysql, у вас есть «as», как и у меня. Для других db может быть без as (например, oracle)
select count(cat_id), main_cat_name, cat_url
from mf_main
group by main_cat_name, cat_url
order by main_cat_name
Если вы не используете запрос WHERE и не ограничиваете вывод каким-либо другим способом, например с помощью GROUP BY, то количество строк в результате будет соответствовать количеству строк в таблице, поэтому вы можно использовать специальные методы драйвера базы данных для определения количества строк, например mysql_num_rows
в PHP
Вы можете попробовать
select main_cat_name,cat_url,
COUNT(*) OVER () AS total_count
from mf_main
order by main_cat_name
Не уверен, принимает ли MySQL AS
, просто удалите его, если он не принимает.