如何判断数据是上升还是下降

【问题】

       有一组数据,
date_1    count_1
2014-12-01   1
2014-12-02   3
2014-12-03   5
2014-12-04   3
2014-12-05   2
2014-12-06   1
2015-01-01   5
2015-01-02   4
2015-01-03   3
怎么写SQL判断出,数据是上升还是下降状态?
希望结果
date_1    count_1   status_1
2014-12-01   1      
上升
2014-12-02   3     
上升
2014-12-03   5     
上升
2014-12-04   3     
下降
2014-12-05   2     
下降
2014-12-06   1     
下降
2015-01-01   5     
上升
2015-01-02   4     
下降
2015-01-03   3     
下降
谢谢!

【回答】

  在MSSQL中可以先通过窗口函数和上一条记录比较,可以这样写:

select date_1,count_1, case when count_1 > lag(count_1) over ( order by date_1 )  then '上升 ' else ' 下降 ' end  'status_1' from tb


  但 SQL SERVER 的某些版本不支持 lag 函数,这时就得用造序号后自连接的方法,造序号时可以不用窗口函数,用个子查询计行号即可,适用于不支持窗口函数的数据库,但很麻烦。

  SPL适用各类数据库,完成有序集合这类运算也很简单,比如这个问题可以这样实现:


A

1

$select date_1,count_1   from tb order by date_1

2

=A1.derive(if(count_1>count_1[-1],"上升","下降"):   status_1)

A1sql取数,按date_1排序

A2:新增status_1列,通过count_1[-1]取得前一条记录的count_1,以此判断上升或者下降

写好的脚本如何在应用程序中调用,可以参考Java 如何调用 SPL 脚本