2015-11-28 78 views
0

在我的應用程序中,我有一個表products_downloads,其中存儲有關每個產品下載的信息。通過mysql表進行統計彙總

這是此表的結構:

enter image description here

在我的應用程序有很多產品TOPS的地方我展示過去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條件。

+0

感謝您的更正! –