我需要在表格中按最改变的GROUP排序

时间:2014-11-26 12:35:11

标签: mysql

我有一个名为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)

1 个答案:

答案 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;