1
A
回答
1
嘗試避免內部聯接,它有錯誤的情況呢(t1.hitDate = t2.hitDate and t1.hitDate-1 = t2.hitDate
不能滿足):
select
t1.HitDate,
t1.City,
t1.Client,
SUM(t1.NumVisits) - IFNULL((SELECT SUM(t2.NumVisits) FROM PAGE_HITS t2 WHERE t2.HitDate = t1.HitDate-1 AND t2.City = t1.City AND t2.Client = t1.Client), 0) as rate_of_change
from
PAGE_HITS t1
WHERE
t1.Client='C'
group by
HitDate,
City
ORDER BY HitDate;
0
要獲得基於百分比增加/減少
select
t1.HitDate,
t1.City,
t1.Client,
SUM(t1.NumVisits),
IFNULL(((SUM(t1.NumVisits) - IFNULL((SELECT SUM(t2.NumVisits) FROM PAGE_HITS t2 WHERE t2.HitDate = t1.HitDate-1 AND t2.City = t1.City AND t2.Client = t1.Client), 0)) * 100)/IFNULL((SELECT SUM(t2.NumVisits) FROM PAGE_HITS t2 WHERE t2.HitDate = t1.HitDate-1 AND t2.City = t1.City AND t2.Client = t1.Client), 0),0) as rate_of_change
from
PAGE_HITS t1
WHERE
t1.Client='C'
group by
HitDate,
City
ORDER BY HitDate;
0
先做一個唯一編號像rownum 並作出相同的查詢 和加入rownum列 然後你可以看到前一個月作爲新列和計算變化率。
SELECT A.HitDate, A.City, A.sumThis, B.sumFormer, (A.sumThis/B.sumFormer - 1) * 100 as 'ChangingRate'
From (
select @rownum1:[email protected] + 1 as 'rownum1', HitDate, City, sum(NumVisits) as 'sumThis'
from page_hits, (Select @rownum1:=0) R
Where client = 'C'
Group by HitDate, City
) A
Left Join (
select @rownum2:[email protected] + 1 as 'rownum2', HitDate, City, sum(NumVisits) as 'sumFormer'
from page_hits, (Select @rownum2:=0) R
Where client = 'C'
Group by HitDate, City
) B On A.rownum1 - 1 = B.rownum2
相關問題
- 1. T-SQL-在單個查詢中包含計數(*)的總和
- 2. 使用SQL查詢計算單位費率和數量查詢
- 3. SQL查詢計數頻率
- 4. 在單個查詢中獲取總數和條件計數
- 5. 計算總計的Mysql計數查詢
- 6. mysql查詢總計總數的差異
- 7. MYSQL多個查詢或單個查詢 - 哪個更有效率
- 8. 如何計算單個查詢中多列的單個總和
- 9. 在單個mysql查詢中查找計數和數據
- 10. SQL查詢:計算總計
- 11. Mysql加入多個總計 - 提高查詢效率
- 12. 限制sql查詢和排名總計
- 13. 計算部分總和的MySQL查詢
- 14. 在一個查詢中獲得總計數和總計不滿
- 15. 效率更高 - 多個SQL查詢或一個查詢和進程在PHP中?
- 16. Mysql查詢在同一輸出中提供總計和子查詢總數
- 17. 簡單的sql計數和子查詢
- 18. 對兩個「未知」列的總和的sql查詢計數
- 19. SQL查詢來計算奇數和偶數的位數總和
- 20. SQL - 加入總共和每週總計的2個子查詢
- 21. 計數和求和總計php/mysql查詢
- 22. 簡單計數Mysql查詢
- 23. SQL Server 2005查詢 - 計算總和
- 24. SQL查詢總和,合計行
- 25. SQL查詢+限制+統計一個查詢的總體結果?
- 26. 總和 - SQL查詢
- 27. SQL查詢來顯示更改爲「總計」列
- 28. SQL查詢計算總
- 29. SQL統計彙總查詢
- 30. MySQL查詢返回多個總計列
你好Zbynek - 非常感謝。我已經更新了小提琴以包含更多值來測試。 http://www.sqlfiddle.com/#!9/29c94c/1 - 看起來它只顯示原始數據值而不是變化率。另外,我希望以百分比形式顯示更改率。 – usert4jju7
這對每一行都是有意義的,以前的日期沒有行。插入一些數據以獲得差異。關於百分比 - 將'-'更改爲'/'。 –
謝謝Zbynek。非常感謝您的幫助。我已經在下面發佈了我的答案,只是爲了獲得基於百分比的計算的完整參考。 – usert4jju7