SQL Server - 经文的并置

时间:2014-01-06 21:47:54

标签: sql sql-server tsql

我们说我有一个动物园数据库。在每个动物园里都有一些动物,例如斑马,狮子,大象和企鹅。我有以下表格:

  • 动物园:有名字,区域等
  • 动物:chipID(关键),物种,动物所属的动物园

有没有办法查询结果显示每个动物园中每个物种有多少?让我们说动物园在列中,物种在行中。

到目前为止,我已经在一个动物园里对一群动物进行了计数,然后我就陷入了困境。 这是我的代码:

SELECT  Species,  COUNT(ID) AS "No of animals in zoo1"
FROM view1
WHERE Zoos.Name = 'Zoo1' 
GROUP BY Species;

2 个答案:

答案 0 :(得分:2)

类似的东西......确切地说,需要有关数据模型的更多信息。

select zoos.name, species , count(*)
from zoos
join animals on zoos.species = animals.species and zoos.name = animal.zoo_name
group by zoos.name, species

或者

select zoo.name, species , count(*)
from zoos
join animals on zoos.name = animal.zoo_name
group by zoos.name, animals.species

答案 1 :(得分:1)

类似的东西:

SELECT zoo.name, animals.species, count(*) AS number
FROM ANIMALS
LEFT JOIN zoos ON animals.zoo_id = zoo.id
GROUP BY zoo.id, species

工作正常并给你这样的行:

+-----------+------------+----------+
|   name    |   species  |  number  |
+-----------+------------+----------+
| San Diago |   Zebra    |    15    |
| San Diago |   Lion     |     2    |
| Colorado  |   Zebra    |    10    |

等等