oracle、hive都比较好支持分析函数(如sum() over partition by),db2就一般,mysql、sqlite直接就不支持。
因此有必要学会用SQL实现分析函数。
sum() over partition by在Mysql中的替代方法(不适合sqlite因为其不支持本地变量定义)
http://blog.csdn.net/mengtianyalll/article/details/45767603
sqlite替代方法
http://stackoverflow.com/questions/16847574/how-to-use-row-number-in-sqlite
http://stackoverflow.com/questions/14023292/how-to-get-rownum-like-column-in-sqlite-iphone/19199219#19199219
java中的替代方法(比较复杂,未试验)
http://blog.csdn.net/sskicgah/article/details/37650653
因此有必要学会用SQL实现分析函数。
sum() over partition by在Mysql中的替代方法(不适合sqlite因为其不支持本地变量定义)
SET @txn_amt_sum=0;
SELECT A.AGT_NUM, A.AGT_MODIF_NUM, A.EVENT_DAY,
IF(@last_agt_num = A.AGT_NUM and @last_agt_modif_num = A.AGT_MODIF_NUM, @txn_amt_sum := @txn_amt_sum + txn_amt, @txn_amt_sum := txn_amt) AS TXN_AMT_SUM
FROM TX_DETL_TEMP
ORDER BY A.AGT_NUM, A.AGT_MODIF_NUM, A.EVENT_DAY;
详见:
http://blog.csdn.net/mengtianyalll/article/details/45767603
sqlite替代方法
http://stackoverflow.com/questions/16847574/how-to-use-row-number-in-sqlite
http://stackoverflow.com/questions/14023292/how-to-get-rownum-like-column-in-sqlite-iphone/19199219#19199219
java中的替代方法(比较复杂,未试验)
http://blog.csdn.net/sskicgah/article/details/37650653