Mysql 获取复杂查询的计数结果
假设我有这个sql查询Mysql 获取复杂查询的计数结果,mysql,Mysql,假设我有这个sql查询 SELECT max(times_viewed) as m, member_id, (select count(viewed_url) from exp_member_page_tracker where member_id=mpv.member_id) FROM `exp_member_page_tracker` mpv group by member_id 我需要计算所有结果。我是这样做的 SELECT count(member_id) from ( SELECT
SELECT max(times_viewed) as m, member_id, (select count(viewed_url) from exp_member_page_tracker where member_id=mpv.member_id)
FROM `exp_member_page_tracker` mpv
group by member_id
我需要计算所有结果。我是这样做的
SELECT count(member_id) from ( SELECT max(times_viewed) as m, member_id, (select count(viewed_url) from exp_member_page_tracker where member_id=mpv.member_id)
FROM `exp_member_page_tracker` mpv
group by member_id) as m2
但我不确定这是如何有效的。你能建议我如何以最好的方式计算结果吗
谢谢你的子查询,我是否遗漏了什么,这个结果不是更有效吗? 在sqlfiddle尝试: 你的:
SELECT member_id, max(times_viewed) as max_times_viewed
, (select count(viewed_url) from exp_member_page_tracker where member_id=mpv.member_id) as countOfViewedUrl
FROM `exp_member_page_tracker` mpv
group by member_id;
备选方案:
SELECT member_id, max(times_viewed) as max_times_viewed
, count(viewed_url) as countOfViewedUrl
FROM `exp_member_page_tracker` mpv
group by member_id;
我认为如果有100万条记录,它会选择这100万条记录,然后计数。我错了吗?