如何获得一个类别的子集数量?

Posted

技术标签:

【中文标题】如何获得一个类别的子集数量?【英文标题】:How I can get the number of subsets of a category? 【发布时间】:2021-01-31 08:48:30 【问题描述】:

我的产品有一个类别表,名为:TBL_Category

表结构如下:

nid 是身份密钥

nid pid name
1 1 mobile
2 2 tablet
3 1 apple
4 1 samsung
5 3 iphone 11
6 3 iphone 12
7 4 Galaxy S
8 4 Galaxy Note
9 5 11 pro
10 5 11 promax
11 6 12 pro
12 6 12 promax
13 7 Galaxy S10
14 7 Galaxy S10 Lite
15 8 Galaxy Note 10
16 8 Galaxy Note 10 Pro

现在如何获得第一类?

例如:

当用户选择要显示的 Apple 子集数量时:6

或者如果它选择显示移动子集:14 条记录

或者如果它选择 Galaxy Note,它应该显示:2

我的意思是,我想要所有子集的数量

谢谢

【问题讨论】:

你试过什么?你在哪里卡住了?请向我们展示您的尝试。 您必须使用 Group By 功能。 你可能想要havingjoin 【参考方案1】:

感谢您的指导,我是通过以下方式获得的:

with cte as (
    select nid
    from TB_Category
    where nid = 429
    union all
    select ca.nid
    from cte ct
    inner join TB_Category ca on ca.parentid = ct.nid
)
select p.nid
from TB_Category p
inner join cte ct on ct.nid = p.nid

【讨论】:

外部查询中的联接是多余的。

以上是关于如何获得一个类别的子集数量?的主要内容,如果未能解决你的问题,请参考以下文章

如何在laravel eloquent查询中获得前10个类别列表

Seaborn.countplot :按数量排序,也按类别排序?

如何在 Fashion_mnist (Tensorflow) 中设置具有特定类别的子集

Django:获取具有至少一个相关模型的模型的子集

如何使用嵌套案例查询获得不同的计数?

如何计算集合 1,2,3,..,n 的互质子集的数量