我有2个MySQL而且我正在尝试获得每个城市拥有至少一只狗的拥有者数量。我的表是:
owners
id, name, city
和
dogs
id, owner_id, name, weight
到目前为止,我有以下内容:
SELECT owners.city, count(dogs.id) AS 'Owners'
FROM owners INNER JOIN dogs ON (owners.id = dogs.owner_id)
GROUP BY owners.city
然而,这给了我每个城市的狗总数。但是我想得到每个城市的狗主人数。
我该怎么做?
答案 0 :(得分:1)
您只需要使用DISTINCT字计算所有者ID,该字数仅计算唯一所有者。
SELECT owners.city, count(DISTINCT owners.id) AS 'Owners'
FROM owners INNER JOIN dogs ON (owners.id = dogs.owner_id)
GROUP BY owners.city
答案 1 :(得分:0)
您提供的信息无法获得准确的答案。有两个单独的表,每个表都有描述事物(狗,所有者)的属性,但表格是不相交的。
我建议添加" owner_id"专栏"狗"表。然后,您可以从所有者,按城市,等等中进行选择。
更新问题后,为您解决了这个问题:http://sqlfiddle.com/#!2/403f7/4/0