Sqlite

組前10、20、30

  • April 10, 2019

大家早!我創建了一個程序和數據庫,可以從網站上提取數據(MLB 球隊的球員成本),然後我匯總這些數據並將其用於各種事情。

我需要找到的一件事是最便宜的 10、20 和 30 名球員的每支球隊的總成本。我已經嘗試了一些我在網上看到的建議,但似乎沒有一個對我有用。

我的數據庫有以下欄位:

Player | Overall | Sell | Buy | Series | Dash | Team | League | Division | Position | Pull_Date_Time

這是我目前用來獲取每個團隊的總成本的方法:

select team, sum(buy) from Players 
where series = 'Live' and pull_date_time = '2019-04-09 08:46:04'
group by team
order by sum(buy)

我需要相同的數據——只為每支球隊選擇最便宜的 10、20 和 30 名球員,並按球隊分組,如上所示。我確實需要包含我目前使用的 where 子句。我不需要這只是 1 個查詢 - 我完全希望每個計數(10、20、30)都需要它自己的查詢。

假設您擁有 SQLite 3.25.0 或更高版本,請使用視窗函式來計算每個已排序團隊中的行數:

SELECT Team,
      sum(Buy)
FROM (SELECT Team,
            Buy,
            row_number() OVER (PARTITION BY Team
                               ORDER BY Buy     ) AS RowNum
     FROM Players)
WHERE RowNum <= 10
GROUP BY Team
ORDER BY sum(Buy);

引用自:https://dba.stackexchange.com/questions/234321