从 select 语句中的列计算

Calcuation from columns inside select statement

我有一个 sqlite3 table ACCOUNTS,它包含四列 NAMESCORESTART_TIMECURRENT_TIMESTART_TIMECURRENT_TIME 以毫秒为单位(自 1970 年起)。现在我想从每一行计算 SCORE / ((CURRENT_TIME - START_TIME) / (1000*60*60*24)),这意味着每天的平均分数。结果应该按照每天的这个平均分数排序(降序)。

我想到了类似的东西,比如

SELECT NAME name, SCORE score FROM ACCOUNTS ORDER BY score DESC, name ASC

但是我不知道如何合并上面的计算。

你似乎已经解决了这个问题,只是错过了一个表达式,它给你当前的 date/time 作为纪元。在 SQLIte 中,您可以为此使用 strftime('%s', 'now') - 这个 returns 自 unix 纪元以来 的数量,而不是毫秒,因此需要进行一些调整:

select 
    name, 
    score, 
    score / (strftime('%s', 'now') - starttime / 1000) / 60 / 60 / 24 avg_daily_score
from accounts
order by avg_daily_score desc