mysql表上的统计聚合
Posted
技术标签:
【中文标题】mysql表上的统计聚合【英文标题】:statistical aggregation over mysql table 【发布时间】:2015-11-28 19:15:30 【问题描述】:在我的应用程序中,我有一个表 products_downloads
,用于存储有关每个产品下载的信息。
这是这个表的结构:
在我的应用程序中,我有很多产品 TOP,其中我显示了按总下载量(所有时间)排序的最后 10 个产品和另一个按上周下载次数排序的产品(sql 查询执行时间减去 7 天)
例如,在我的主页上,我需要显示我网站上所有产品的 TOP 产品下载量。在某些产品类别中,我需要显示产品下载 TOP,其中包含仅与该类别和所有后代类别相关的产品。
我觉得我需要执行一些定期数据聚合(通过products_downloads
表),但我现在不明白这个任务的正确解决方案是什么。也许 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
条件。
【讨论】:
以上是关于mysql表上的统计聚合的主要内容,如果未能解决你的问题,请参考以下文章