0

我有一张如下表:

ID 姓名 生日 性别 父母

parentid的值,例如我有 3 条记录:

记录 1:    1 '爸爸' '1960-10-10' 0 0

记录 2:    2 '儿子' '2000-05-05' 0 1

记录 3:    3 '女儿' '2004-03-05' 1 1

记录 2,3 是记录 1 的子项。如何选择具有最多子项并按 DESC 排序的顶级项目。谢谢。

4

1 回答 1

1

我如何选择拥有最多孩子的顶级项目

这是GROUP BY子句+COUNT()聚合函数的基本应用。

这会将所有孩子分组在一起(根据parent)并计算他们。最后,根据该计数对它们进行排序:

SELECT parent, COUNT(*) AS c FROM tbl 
  WHERE parent != 0 -- ignore "no parent"
  GROUP BY(parent) 
  ORDER BY c DESC;
于 2013-08-15T13:24:29.753 回答