【问题标题】:Select most popular categories based on records assigned to them根据分配给它们的记录选择最流行的类别
【发布时间】:2015-09-23 15:16:11
【问题描述】:

问题: 我想根据分配给每个类别的记录了解哪些是最受欢迎的类别

数据库结构:

categories.id
categories.title

records.id
records.category_id
records.title
records.views

目标: 假设records 表中有1000 多个项目,它们分配给每个类别的方式不同,并且随机数为records.views。我知道如何 JOIN 多个表,但我不知道如何计算每个类别中记录的所有视图并显示出来。

预期结果: 我希望有这样的输出,如下所示:

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

任何提示如何实现?

【问题讨论】:

    标签: mysql join count


    【解决方案1】:

    这似乎是一个非常简单的聚合查询:

    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 ;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-08
      • 2020-12-19
      • 2015-06-05
      • 2021-06-01
      相关资源
      最近更新 更多