如何将每行的类别数收集到一行并计算每个类别

Posted

技术标签:

【中文标题】如何将每行的类别数收集到一行并计算每个类别【英文标题】:how to gather number of categories of each row to one row and count each one of the categories 【发布时间】:2021-10-10 07:33:46 【问题描述】:

我想知道如何从 2 行组成每个类别的 1 行并计算每个类别

例如桌衣:

clothes1 clothes2
shirt pants
shirt Null
dress shirt
Socks pants

我需要一个看起来像这样的查询。(没有新表可以吗?)。结果应该是这样的:

clothes count
shirt 50
socks 30
pants 20
dress 10

我需要在(分区)上使用 row_number() 还是可以以某种方式使用 group by?还是有其他方法?而且我还需要显示前 3 名。

谢谢!

【问题讨论】:

请标记单个 RDBMS,因为 mysql SQL Server。 你是怎么得到count列的? D-Shih 我需要将每个类别的所有列一起计算(我有 5 列衣服,但这里我举了 2 列的示例) 【参考方案1】:

取两列的并集,然后聚合:

SELECT clothes, COUNT(*) AS count
FROM
(
    SELECT clothes1 AS clothes FROM clothes
    UNION ALL
    SELECT clothes2 FROM clothes
) t
GROUP BY clothes;

【讨论】:

我不需要计算所有东西,只需要计算衣服 1 和衣服 2(我还有另一个列,如 id、brand 等)。 t是什么? @d12 t 是别名。自从我最初回答以来,您已经编辑了您的问题。

以上是关于如何将每行的类别数收集到一行并计算每个类别的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 WooCommerce 更改每行的产品类别数

Java 8如何操作一个列表中的对象并将其收集到另一个列表中? [重复]

如何在Python中对包含分类变量的列的行数求和[重复]

SDNU 1038.收集宝藏(dp)

Java流:收集嵌套集合

如何将图像添加到wordpress中的每个类别?