假设我有两个现有的桌子,"狗"和"猫":
dog_name | owner
---------+------
Sparky | Bob
Rover | Bob
Snoopy | Chuck
Odie | Jon
cat_name | owner
---------+------
Garfield | Jon
Muffy | Sam
Stupid | Bob
Run Code Online (Sandbox Code Playgroud)
如何使用此输出编写查询?
owner | num_dogs | num_cats
------+----------+---------
Bob | 2 | 1
Chuck | 1 | 0
Sam | 0 | 1
Jon | 1 | 1
Run Code Online (Sandbox Code Playgroud)
And*_*isi 10
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
Run Code Online (Sandbox Code Playgroud)
我更喜欢这个:
select owner
, count(dog_name) dogs
, count(cat_name) cats
from cats FULL OUTER JOIN dogs ON (cats.owner = dogs.owner)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10848 次 |
最近记录: |