SQL使用查询结果创建另一个表

时间:2015-07-25 17:29:31

标签: mysql

(SELECT childinfo.first,childinfo.last,COUNT(clubinfo.club) AS clubs_per_student FROM clubinfo
LEFT JOIN childinfo
ON childinfo.child_id=clubinfo.child_id
GROUP BY concat(studentinfo.first,' ',studentinfo.last)
)

上面是我编写的用于组合表childinfo(包含列child_id,名字和姓氏)和clubinfo(包含列child_id和club)的查询。上面的查询将产生一个如下所示的表:

first     |     last     |     sports_per_child
Sally     |     Jones    |            2
Phil      |     Jones    |            1
Jane      |     Doe      |            1
John      |     Doe      |            1

我要做的是使用该查询的结果来生成特定数量的俱乐部中学生总数的报告。因此,例如,上表将生成一份报告,其中有3名学生在1个俱乐部,1名学生在2个俱乐部。

关于如何编写使用我以前编写的查询作为子查询来完成此操作的查询的任何想法?

1 个答案:

答案 0 :(得分:1)

您只需要通过sports_per_child获取计数和分组:

SELECT sports_per_child, count(*) FROM
(subquery) AS S
group by sports_per_child