将三个mySQL查询合并为一个查询并返回一个JSON对象


Combine Three mySQL queries into one and return one JSON object

我有以下三个查询:

$sql = "select count(distinct f_home) as home_count_total from cr_test;" ;
$sql2 = "select distinct f_home, count(f_home) as home_count from cr_test group by f_home;" ;

//下方的伪代码

$sql3 = "select distinct f_home, round(count(f_home)/<home_count_total  FROM FIRST QUERY>*100,2) as CountOf from cr_test group by f_home;" ;

我需要的是一个json对象(我可以通过PDO获得,所以不用担心),每个条目有三条数据:f_home、home_count和CountOf。

如何将这些组合成一个查询,以便返回一个JSON对象?

试试这个查询:

SELECT 
  f_home, 
  COUNT(f_home) AS home_count,
  ROUND(COUNT(f_home) / home_count_total * 100, 2) AS CountOf
FROM 
  cr_test,
  (SELECT COUNT(DISTINCT f_home) AS home_count_total FROM cr_test) t
GROUP BY f_home