我有一个名为EssayStats的MySQL表,有三列,EssayDate,WordCount和EssayId。
每一行都是机器人记录特定时间点文章中有多少单词的记录。
我尝试编写一个将由EssayId分组的查询,并按照WordCount从特定EssayDate到结束EssayDate的最大增长进行排序。
我不确定从哪里开始。我尝试过一些东西,但他们显然没有完成我所喜欢的事情。我最近的查询尝试是
SELECT *
FROM EssayStats
WHERE EssayDate >= "2014-01-01" AND EssayDate <= "2014-05-31"
GROUP BY EssayId
ORDER BY (WordCount)
答案 0 :(得分:1)
首先在每篇文章的开头和结尾都有日期。然后join
支持原始表以获取计数并进行一些算术运算:
select es.EssayId, (esmax.WordCount - esmin.WordCount)
from (select es.EssayId, min(es.EssayDate) as mined, max(es.EssayDate) as maxed
from EssayStats es
group by es.EssayId
) es join
EssayStats esmin
on es.EssayId = esmin.EssayId and es.mined = esmin.EssayDate join
EssayStats esmax
on es.EssayId = esmax.EssayId and es.maxed = esmax.EssayDate;