Select 个基于分配给它们的记录的最热门类别
Select most popular categories based on records assigned to them
问题:我想根据分配给每个类别的记录了解最受欢迎的类别
数据库结构:
categories.id
categories.title
records.id
records.category_id
records.title
records.views
目标: 假设 records
table 中有 1000 多个项目,每个类别的分配不同,并且有随机数records.views
。我知道如何加入多个 tables,但我不知道如何计算每个类别中记录的所有查看次数并显示。
预期结果: 我希望输出如下所示:
CATEGORY #1
id = 21
title = Fruits
views = 381
CATEGORY #2
id = 24
title = Snacks
views = 8875
CATEGORY #3
id = 47
title = Toys
views = 381
CATEGORY #4
id = 25
title = Milky-wilky products
views = 8875
有什么技巧可以实现吗?
这似乎是一个非常简单的聚合查询:
SELECT
c.id, c.title, SUM(r.views) AS views
FROM
categories AS c
LEFT JOIN
records AS r
ON r.category_id = c.id
GROUP BY
c.id, c.title ;
问题:我想根据分配给每个类别的记录了解最受欢迎的类别
数据库结构:
categories.id
categories.title
records.id
records.category_id
records.title
records.views
目标: 假设 records
table 中有 1000 多个项目,每个类别的分配不同,并且有随机数records.views
。我知道如何加入多个 tables,但我不知道如何计算每个类别中记录的所有查看次数并显示。
预期结果: 我希望输出如下所示:
CATEGORY #1
id = 21
title = Fruits
views = 381
CATEGORY #2
id = 24
title = Snacks
views = 8875
CATEGORY #3
id = 47
title = Toys
views = 381
CATEGORY #4
id = 25
title = Milky-wilky products
views = 8875
有什么技巧可以实现吗?
这似乎是一个非常简单的聚合查询:
SELECT
c.id, c.title, SUM(r.views) AS views
FROM
categories AS c
LEFT JOIN
records AS r
ON r.category_id = c.id
GROUP BY
c.id, c.title ;