以下数据库结果/表是通过使用下面的 SQL 查询将 2 个表连接在一起而创建的。我还想做的是显示第三列,它计算某个值包含在 main_category 列中的次数。可以在底部的表格中看到所需结果的示例,其中第三列显示“主要类别 1”出现的次数 - 在此示例中为 8 次,“主要类别 2”出现 6 次。有谁知道我需要对现有查询做些什么才能做到这一点?它涉及GROUP BY
和COUNT
吗?
+--------------+------------------+ | 子类别 | 主要类别 | +--------------+------------------+ | 子类别A | 主要类别 1 | | 子类别B | 主要类别 1 | | 子类别C | 主要类别 1 | | 子类别D | 主要类别 1 | | 子类别E | 主要类别 1 | | 子类别F | 主要类别 1 | | 子类别G | 主要类别 1 | | 子类别H | 主要类别 1 | | 子类I | 主要类别 2 | | 子类别J | 主要类别 2 | | 子类别K | 主要类别 2 | | 子类别L | 主要类别 2 | | 子类别M | 主要类别 2 | | 子类别N | 主要类别 2 | +--------------+------------------+
SELECT headings.heading AS sub_category,
primary_category AS main_category
FROM TABLE1 INNER JOIN headings ON TABLE1.Heading=TABLE2.heading
UNION
SELECT TABLE2.heading AS heading,
secondary_category AS main_category
FROM TABLE1 INNER JOIN TABLE2 ON TABLE1.Heading=TABLE2.heading
ORDER BY main_category ASC
+--------------+------------------+--------+ | 子类别 | 主要类别 | 计数 | +--------------+------------------+--------+ | 子类别A | 主要类别 1 | 8 | | 子类别B | 主要类别 1 | 8 | | 子类别C | 主要类别 1 | 8 | | 子类别D | 主要类别 1 | 8 | | 子类别E | 主要类别 1 | 8 | | 子类别F | 主要类别 1 | 8 | | 子类别G | 主要类别 1 | 8 | | 子类别H | 主要类别 1 | 8 | | 子类I | 主要类别 2 | 6 | | 子类别J | 主要类别 2 | 6 | | 子类别K | 主要类别 2 | 6 | | 子类别L | 主要类别 2 | 6 | | 子类别M | 主要类别 2 | 6 | | 子类别N | 主要类别 2 | 6 | +--------------+------------------+--------+