【问题标题】:statistical aggregation over mysql tablemysql表上的统计聚合
【发布时间】:2015-11-28 19:15:30
【问题描述】:

在我的应用程序中,我有一个表 products_downloads,用于存储有关每个产品下载的信息。

这是这个表的结构:

在我的应用程序中,我有很多产品 TOP,其中我显示了按总下载量(所有时间)排序的最后 10 个产品和另一个按上周下载次数排序的产品(sql 查询执行时间减去 7 天)

例如,在我的主页上,我需要显示我网站上所有产品的 TOP 产品下载量。在某些产品类别中,我需要显示产品下载 TOP,其中包含仅与该类别和所有后代类别相关的产品。

我觉得我需要执行一些定期数据聚合(通过products_downloads 表),但我现在不明白这个任务的正确解决方案是什么。也许 OLAP ?请指教。

【问题讨论】:

    标签: mysql aggregate-functions olap


    【解决方案1】:

    这类事情使用以下基本模式

     SELECT COUNT(*) hit_count,
            product_id
      FROM products_downloads 
      WHERE whatever-condition
      GROUP BY product_id
      ORDER BY COUNT(*) DESC
      LIMIT 10
    

    您想要的聚合很简单:COUNT(*)。诀窍是选择合适的WHERE 条件。

    【讨论】:

      猜你喜欢
      • 2014-04-10
      • 1970-01-01
      • 1970-01-01
      • 2013-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-12
      • 2021-02-22
      相关资源
      最近更新 更多