Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一张如下表:
ID 姓名 生日 性别 父母
与parent是id的值,例如我有 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 排序的顶级项目。谢谢。
我如何选择拥有最多孩子的顶级项目
这是GROUP BY子句+COUNT()聚合函数的基本应用。
GROUP BY
COUNT()
这会将所有孩子分组在一起(根据parent)并计算他们。最后,根据该计数对它们进行排序:
parent
SELECT parent, COUNT(*) AS c FROM tbl WHERE parent != 0 -- ignore "no parent" GROUP BY(parent) ORDER BY c DESC;