在一个sql select中使用相同的Count两次

时间:2013-12-31 01:06:57

标签: mysql sql count sql-order-by

SELECT Person.name, Person.lastName, COUNT(DISTINCT childrenID) 
FROM Person, ParentChildren 
WHERE ParentChildren.parentID = ParentChildren.parentID 
AND Person.ID = ParentChildren.parentID 
GROUP BY COUNT(DISTINCT childrenID) DESC;

它显然不起作用,因为我不擅长这个。 它应该做的是显示姓名,姓氏和这个人从多少个孩子开始的孩子。

任何帮助将不胜感激:)

1 个答案:

答案 0 :(得分:2)

您的WHERE语句不正确。你分组也是不正确的。您按照未进行SUM'd,COUNT'd等的列进行分组

WHERE ParentChildren.parentID = ParentChildren.parentID 

如果您将其切换到正确的表连接,那么您可能会得到您正在寻找的答案。 编辑:看完原理图后,我认为这就是你想要的:

SELECT
  Person.name, 
  Person.lastName, 
  COUNT(DISTINCT ParentChildren.childrenID) 
FROM Person, ParentChildren 
WHERE 
  Person.ID = ParentChildren.parentID 
GROUP BY 
  Person.name,
  Person.lastName
ORDER BY
  COUNT(DISTINCT childrenID) DESC;

如果您收到错误,可以发布吗?