所以我有这个MySQL查询应该聚集在同一个树(你的亲戚)中的每个人有相同的birthlocationtown
,并按照这些城镇的数量分组和排序,有效地挑出一起出生的所有亲戚在同一个城镇:
SELECT birthLocationTown, count(*) AS Number
FROM Events as e1, Person as p1, Tree as t1
WHERE e1.fk_person = p1.personID
AND
p1.fk_treeID =
(SELECT treeID
FROM Tree as t1
WHERE t1.fk_owner = '1')
AND
Number > 1
GROUP BY birthLocationTown
ORDER BY Number
语法是正确的,除了Count Number,我不确定如何格式化。我认为将计数重命名为Number,我只能指定Number > 1
,表示出生在同一个城镇的多个亲戚。
答案 0 :(得分:1)
HAVING
子句可以对聚合表达式进行操作。 (WHERE
子句不能对SELECT列表中的聚合表达式进行操作。)修复查询中的语法问题(我没有分析查询的任何其他内容,结果集是它返回)只是......
取代:
AND Number > 1
使用:
HAVING `Number` > 1
或:
HAVING COUNT(*) > 1