假设我有两个现有的表,“狗”和“猫”:
狗名 | 所有者 ---------+------ 火花 | 鲍勃 罗孚 | 鲍勃 史努比 | 查克 欧迪 | 乔恩 猫名 | 所有者 ---------+------ 加菲猫 | 乔恩 玛菲 | 山姆 愚蠢 | 鲍勃
如何使用此输出编写查询?
所有者 | num_dogs | num_cats ------+----------+---------- 鲍勃 | 2 | 1 查克 | 1 | 0 山姆 | 0 | 1 乔恩 | 1 | 1
我得到的答案是下一个查询
select owner, sum(num_dogs), sum(num_cats) from
(select owner, 1 as num_dogs, 0 as num_cats from dogs
union
select owner, 0 as num_dogs, 1 as num_cats from cats)
group by owner
但问题是sql不支持“select * from (select...)”类型的查询
相反,“from”之后必须有一个表名。
不幸的是,我买不起临时表或使用“select into”子句创建的表。对于以这种方式形成嵌套选择子句的建议解决方案,我需要一些解决方法。
你怎么看?
干杯