簡體   English   中英

SQL計算運行

[英]SQL calculating running

我在Access數據庫中運行一個SQL查詢,以累積每次記錄后運行的距離。

我使用以下代碼來計算運行總計:

SELECT a.run, a.year, a.date, a.distance, round((SELECT SUM(b.distance)
                       FROM vwAllCast b
                       WHERE b.run <= a.run),1) AS AccDistance
FROM vwAllCast AS a
ORDER BY a.run DESC;

此代碼返回所有記錄,將所有距離相加得出AccDistance。 現在,我想每年重新開始積累。 有誰知道如何實現這一目標?

就像Piyush所說的那樣,我認為這樣的方法應該有效:

SELECT a.run, a.year, a.date, a.distance, round((SELECT SUM(b.distance)
                       FROM vwAllCast b
                       WHERE b.run <= a.run and a.year = b.year),1) AS AccDistance
FROM vwAllCast AS a
ORDER BY a.run DESC;

自聯接+分組依據可能比相關子查詢更快

SELECT a.run, a.year, a.date, a.distance, SUM(b.distance)
FROM vwAllCast AS a
JOIN vwAllCast b on b.run <= a.run AND b.year = a.year
GROUP BY a.run, a.year, a.date, a.distance
ORDER BY a.run DESC

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM