选择Count(*)>的行1来自group by子句

时间:2015-03-26 17:36:32

标签: mysql group-by

所以我有这个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,表示出生在同一个城镇的多个亲戚。

1 个答案:

答案 0 :(得分:1)

HAVING子句可以对聚合表达式进行操作。 (WHERE子句不能对SELECT列表中的聚合表达式进行操作。)修复查询中的语法问题(我没有分析查询的任何其他内容,结果集是它返回)只是......

取代:

AND Number > 1

使用:

HAVING `Number` > 1 

或:

HAVING COUNT(*) > 1