我有一个这样的查询:
SELECT PlayerID, COUNT(PlayerID) AS "MatchesPlayed", Name, Role, Team,
SUM(Goals) As "TotalGoals", SUM(Autogoals) As "TotalAutogoals",
SUM(...)-2*SUM(...)+2*SUM(...) AS Score, ...
FROM raw_ordered
GROUP BY PlayerID
ORDER BY Score DESC
其中raw_ordered
每一行描述了一些球员在一些比赛中的表现,按时间倒序排列。
因为我是PlayerID
按照从这个查询中得到的信息进行分组,所以我是一个表格,其中每一行都提供了关于某个玩家的累积数据。现在,具有聚合函数的列没有问题;我的问题出在Team
专栏上。
球员可以在一个赛季中更换球队;我在这里感兴趣的是他玩的最后一个 Team
,所以我想有一种方法来告诉SELECT
每个组中遇到的第一个值对于Team
列(或者,一般来说,对于非聚合函数列)。
不幸的是,我似乎没有在 SQLite 中找到任何(简单的)方法来做到这一点:文档说SELECT
:
如果表达式是聚合表达式,则会在组中的所有行中对其进行评估。否则,将根据组内任意选择的单个行对其进行评估。
没有关于如何改变这种行为的建议,而且我在聚合函数之间找不到任何只接受它遇到的第一个值的东西。
任何想法?