2012-02-23 83 views
0

我有以下數據列SQL尋找最近趨勢的項目

date item 

每一行是哪個日期是買了什麼項目交易記錄的表。我怎樣寫一個SQL發現,已經獲得了大多數銷售爲一體在兩個時間段的百分比的項目。例如,通過在項目銷售得到了一個星期每天的基礎上,我可以做

select 
date, 
item, 
count(*) 
from table 
date >= '2012-01-01' 
date <= '2012-01-07' 
group by 1,2 order by 1 

如果我改變了下週的日期範圍,我可以得到上一週銷售的物品。 但我想找到一個SQL的解決方案,以獲得一個拉這個工作,而不必在Excel中處理數據。

+1

您正在使用什麼數據庫? – 2012-02-23 23:07:25

回答

0

你有沒有試過這種

select item 
    , 100 * count(*)/(select count(*) 
          from table 
          where date between '2012-01-01' and '2012-01-07' 
           ) as avrg 
    from table 
where date between '2012-01-01' and '2012-01-07' 
group by item 
order by item 
0

我總是得到這個向後第一次,但像下面可能讓你開始。

SELECT d1.item, COUNT(d1.item)/COUNT(d2.item) AS slope 
FROM data AS d1 
JOIN data AS d2 ON d2.item = d1.item 
WHERE d1.date > '2012-01-01' 
AND d2.date > '2012-01-07' 
GROUP BY d1.item 
ORDER BY COUNT(d1.item)/COUNT(d2.item) DESC