SQL可以跨多个表计算聚合函数吗?

前端之家收集整理的这篇文章主要介绍了SQL可以跨多个表计算聚合函数吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我有两个现有的桌子,“狗”和“猫”:
  1. dog_name | owner
  2. ---------+------
  3. Sparky | Bob
  4. Rover | Bob
  5. Snoopy | Chuck
  6. Odie | Jon
  7.  
  8. cat_name | owner
  9. ---------+------
  10. Garfield | Jon
  11. Muffy | Sam
  12. Stupid | Bob

如何使用此输出编写查询

  1. owner | num_dogs | num_cats
  2. ------+----------+---------
  3. Bob | 2 | 1
  4. Chuck | 1 | 0
  5. Sam | 0 | 1
  6. Jon | 1 | 1

解决方法

  1. select owner,sum(num_dogs),sum(num_cats) from
  2. (select owner,1 as num_dogs,0 as num_cats from dogs
  3. union
  4. select owner,0 as num_dogs,1 as num_cats from cats)
  5. group by owner

猜你在找的MsSQL相关文章