static void windowAggInit(Parse *pParse, Window *pMWin){
Window *pWin;
for(pWin=pMWin; pWin; pWin=pWin->pNextWin){
- int funcFlags = pWin->pFunc->funcFlags;
- if( (funcFlags & SQLITE_FUNC_MINMAX) && pWin->eStart!=TK_UNBOUNDED ){
+ Vdbe *v = sqlite3GetVdbe(pParse);
+ FuncDef *p = pWin->pFunc;
+ if( (p->funcFlags & SQLITE_FUNC_MINMAX) && pWin->eStart!=TK_UNBOUNDED ){
ExprList *pList = pWin->pOwner->x.pList;
KeyInfo *pKeyInfo = sqlite3KeyInfoFromExprList(pParse, pList, 0, 0);
- Vdbe *v = sqlite3GetVdbe(pParse);
pWin->csrApp = pParse->nTab++;
pWin->regApp = pParse->nMem+1;
pParse->nMem += 3;
sqlite3VdbeAppendP4(v, pKeyInfo, P4_KEYINFO);
sqlite3VdbeAddOp2(v, OP_Integer, 0, pWin->regApp+1);
}
+ else if( p->xSFunc==nth_valueStepFunc ){
+ /* Allocate two registers at pWin->regApp. These will be used to
+ ** store the start and end index of the current frame. */
+ assert( pMWin->iEphCsr );
+ pWin->regApp = pParse->nMem+1;
+ pWin->csrApp = pParse->nTab++;
+ pParse->nMem += 2;
+ sqlite3VdbeAddOp2(v, OP_Integer, 0, pWin->regApp);
+ sqlite3VdbeAddOp2(v, OP_Integer, 0, pWin->regApp+1);
+ sqlite3VdbeAddOp2(v, OP_OpenDup, pWin->csrApp, pMWin->iEphCsr);
+ }
}
}
regArg = reg + pWin->iArgCol;
}
- if( pWin->csrApp ){
+ if( (pWin->pFunc->funcFlags & SQLITE_FUNC_MINMAX)
+ && pWin->eStart!=TK_UNBOUNDED
+ ){
if( bInverse==0 ){
sqlite3VdbeAddOp2(v, OP_AddImm, pWin->regApp+1, 1);
sqlite3VdbeAddOp2(v, OP_SCopy, regArg, pWin->regApp);
sqlite3VdbeAddOp1(v, OP_Delete, pWin->csrApp);
sqlite3VdbeJumpHere(v, sqlite3VdbeCurrentAddr(v)-2);
}
+ }else if( pWin->regApp ){
+ assert( pWin->pFunc->xSFunc==nth_valueStepFunc );
+ assert( bInverse==0 || bInverse==1 );
+ sqlite3VdbeAddOp2(v, OP_AddImm, pWin->regApp+1-bInverse, 1);
}else{
if( pWin->pFunc->funcFlags & SQLITE_FUNC_NEEDCOLL ){
CollSeq *pColl;
Window *pWin;
for(pWin=pMWin; pWin; pWin=pWin->pNextWin){
- if( pWin->csrApp ){
+ if( (pWin->pFunc->funcFlags & SQLITE_FUNC_MINMAX)
+ && pWin->eStart!=TK_UNBOUNDED
+ ){
sqlite3VdbeAddOp2(v, OP_Null, 0, pWin->regResult);
sqlite3VdbeAddOp1(v, OP_Last, pWin->csrApp);
sqlite3VdbeAddOp3(v, OP_Column, pWin->csrApp, 0, pWin->regResult);
if( bFinal ){
sqlite3VdbeAddOp1(v, OP_ResetSorter, pWin->csrApp);
}
+ }else if( pWin->regApp ){
+ if( bFinal ){
+ sqlite3VdbeAddOp2(v, OP_Integer, 0, pWin->regApp);
+ sqlite3VdbeAddOp2(v, OP_Integer, 0, pWin->regApp+1);
+ }
}else{
if( bFinal==0 ){
sqlite3VdbeAddOp2(v, OP_Null, 0, pWin->regResult);
sqlite3VdbeAddOp2(v, OP_Gosub, regFlushPart, lblFlushPart);
}
+static void windowReturnOneRow(
+ Parse *pParse,
+ Window *pMWin,
+ int regGosub,
+ int addrGosub
+){
+ Vdbe *v = sqlite3GetVdbe(pParse);
+ Window *pWin;
+ for(pWin=pMWin; pWin; pWin=pWin->pNextWin){
+ FuncDef *pFunc = pWin->pFunc;
+ if( pFunc->xSFunc==nth_valueStepFunc ){
+ int csr = pWin->csrApp;
+ int lbl = sqlite3VdbeMakeLabel(v);
+ int tmpReg = sqlite3GetTempReg(pParse);
+ sqlite3VdbeAddOp2(v, OP_Null, 0, pWin->regResult);
+ sqlite3VdbeAddOp3(v, OP_Column, pWin->iEphCsr, pWin->iArgCol+1, tmpReg);
+ sqlite3VdbeAddOp3(v, OP_Add, tmpReg, pWin->regApp, tmpReg);
+ sqlite3VdbeAddOp3(v, OP_Gt, pWin->regApp+1, lbl, tmpReg);
+ sqlite3VdbeAddOp3(v, OP_SeekRowid, csr, lbl, tmpReg);
+ sqlite3VdbeAddOp3(v, OP_Column, csr, pWin->iArgCol, pWin->regResult);
+ sqlite3VdbeResolveLabel(v, lbl);
+ sqlite3ReleaseTempReg(pParse, tmpReg);
+ }
+ }
+ sqlite3VdbeAddOp2(v, OP_Gosub, regGosub, addrGosub);
+}
+
+static void windowReturnRows(
+ Parse *pParse,
+ Window *pMWin,
+ int regCtr,
+ int bFinal,
+ int regGosub,
+ int addrGosub,
+ int regInvArg,
+ int regInvSize
+){
+ int addr;
+ Vdbe *v = sqlite3GetVdbe(pParse);
+ windowAggFinal(pParse, pMWin, 0);
+ addr = sqlite3VdbeAddOp3(v, OP_IfPos, regCtr, sqlite3VdbeCurrentAddr(v)+2 ,1);
+ sqlite3VdbeAddOp2(v, OP_Goto, 0, 0);
+ windowReturnOneRow(pParse, pMWin, regGosub, addrGosub);
+ if( regInvArg ){
+ windowAggStep(pParse, pMWin, pMWin->iEphCsr, 1, regInvArg, regInvSize);
+ }
+ sqlite3VdbeAddOp2(v, OP_Next, pMWin->iEphCsr, addr);
+ sqlite3VdbeJumpHere(v, addr+1); /* The OP_Goto */
+}
+
/*
** ROWS BETWEEN <expr1> PRECEDING AND <expr2> FOLLOWING
** ----------------------------------------------------
}
sqlite3VdbeAddOp2(v, OP_Integer, 0, regPeer);
}
+
windowAggFinal(pParse, pMWin, 0);
if( bRange ){
sqlite3VdbeAddOp2(v, OP_AddImm, regPeer, 1);
}
- sqlite3VdbeAddOp2(v, OP_Gosub, regGosub, addrGosub);
+ windowReturnOneRow(pParse, pMWin, regGosub, addrGosub);
sqlite3VdbeAddOp2(v, OP_Next, pMWin->iEphCsr, sqlite3VdbeCurrentAddr(v)+2);
sqlite3VdbeAddOp2(v, OP_Goto, 0, lblFlushDone);
if( bRange ){
int nArg;
assert( (pMWin->eStart==TK_UNBOUNDED && pMWin->eEnd==TK_CURRENT)
+ || (pMWin->eStart==TK_UNBOUNDED && pMWin->eEnd==TK_UNBOUNDED)
+ || (pMWin->eStart==TK_CURRENT && pMWin->eEnd==TK_CURRENT)
);
regNewPeer = pParse->nMem+1;
addrRewind = sqlite3VdbeAddOp1(v, OP_Rewind, csrLead);
sqlite3VdbeAddOp1(v, OP_Rewind, pMWin->iEphCsr);
- if( pOrderBy ){
- int addrJump; /* Address of OP_Jump below */
- int iOff = pMWin->nBufferCol + (pPart ? pPart->nExpr : 0);
- int regPeer = pMWin->regPart + (pPart ? pPart->nExpr : 0);
- KeyInfo *pKeyInfo = sqlite3KeyInfoFromExprList(pParse, pOrderBy, 0, 0);
-
- for(k=0; k<nPeer; k++){
- sqlite3VdbeAddOp3(v, OP_Column, csrLead, iOff+k, regNewPeer+k);
+ if( pOrderBy && pMWin->eEnd==TK_CURRENT ){
+ int bCurrent = (pMWin->eEnd==TK_CURRENT && pMWin->eStart==TK_CURRENT);
+ int addrJump = 0; /* Address of OP_Jump below */
+ if( pMWin->eType==TK_RANGE ){
+ int iOff = pMWin->nBufferCol + (pPart ? pPart->nExpr : 0);
+ int regPeer = pMWin->regPart + (pPart ? pPart->nExpr : 0);
+ KeyInfo *pKeyInfo = sqlite3KeyInfoFromExprList(pParse, pOrderBy, 0, 0);
+ for(k=0; k<nPeer; k++){
+ sqlite3VdbeAddOp3(v, OP_Column, csrLead, iOff+k, regNewPeer+k);
+ }
+ addr = sqlite3VdbeAddOp3(v, OP_Compare, regNewPeer, regPeer, nPeer);
+ sqlite3VdbeAppendP4(v, (void*)pKeyInfo, P4_KEYINFO);
+ addrJump = sqlite3VdbeAddOp3(v, OP_Jump, addr+2, 0, addr+2);
+ sqlite3VdbeAddOp3(v, OP_Copy, regNewPeer, regPeer, nPeer-1);
}
- addr = sqlite3VdbeAddOp3(v, OP_Compare, regNewPeer, regPeer, nPeer);
- sqlite3VdbeAppendP4(v, (void*)pKeyInfo, P4_KEYINFO);
- addrJump = sqlite3VdbeAddOp3(v, OP_Jump, addr+2, 0, addr+2);
- sqlite3VdbeAddOp3(v, OP_Copy, regNewPeer, regPeer, nPeer-1);
- windowAggFinal(pParse, pMWin, 0);
- sqlite3VdbeAddOp3(v, OP_IfPos, regCtr, sqlite3VdbeCurrentAddr(v)+2 , 1);
- sqlite3VdbeAddOp2(v, OP_Goto, 0, sqlite3VdbeCurrentAddr(v)+3);
- sqlite3VdbeAddOp2(v, OP_Gosub, regGosub, addrGosub);
- sqlite3VdbeAddOp2(v, OP_Next, pMWin->iEphCsr, sqlite3VdbeCurrentAddr(v)-3);
- sqlite3VdbeJumpHere(v, addrJump);
+ windowReturnRows(pParse, pMWin, regCtr, 0, regGosub, addrGosub,
+ (bCurrent ? regArg : 0), (bCurrent ? regSize : 0)
+ );
+ if( addrJump ) sqlite3VdbeJumpHere(v, addrJump);
}
windowAggStep(pParse, pMWin, csrLead, 0, regArg, regSize);
sqlite3VdbeAddOp2(v, OP_AddImm, regCtr, 1);
-
sqlite3VdbeAddOp2(v, OP_Next, csrLead, addrRewind+2);
- windowAggFinal(pParse, pMWin, 1);
-
- sqlite3VdbeAddOp3(v, OP_IfPos, regCtr, sqlite3VdbeCurrentAddr(v)+2 , 1);
- sqlite3VdbeAddOp2(v, OP_Goto, 0, sqlite3VdbeCurrentAddr(v)+3);
- sqlite3VdbeAddOp2(v, OP_Gosub, regGosub, addrGosub);
- sqlite3VdbeAddOp2(v, OP_Next, pMWin->iEphCsr, sqlite3VdbeCurrentAddr(v)-3);
+ windowReturnRows(pParse, pMWin, regCtr, 1, regGosub, addrGosub, 0, 0);
sqlite3VdbeJumpHere(v, addrRewind);
sqlite3VdbeJumpHere(v, addrRewind+1);
}
for(pWin=pMWin; pWin; pWin=pWin->pNextWin){
- if( pWin->pFunc->funcFlags & SQLITE_FUNC_WINDOW_SIZE ){
+ FuncDef *pFunc = pWin->pFunc;
+ if( (pFunc->funcFlags & SQLITE_FUNC_WINDOW_SIZE)
+ || (pFunc->xSFunc==nth_valueStepFunc)
+ ){
windowCodeCacheStep(pParse, p, pWInfo, regGosub, addrGosub);
return;
}
windowCodeDefaultStep(pParse, p, pWInfo, regGosub, addrGosub);
}
-
do_test 1.1.7.6 {
set myres {}
- foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] {
+ foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2}] {
lappend myres [format %.2f [set r]]
}
set myres
SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2
} {1 76 78 33 11 108 52 83 79 65 26 70 103 80 36 116 51 52 128 117 71 63 84 109 78 147 88 121 106 124 85 107 171 150 80 171 120 109 158 87 168 173 162 156 195 198 177 124 121 134 141 210 157 132 161 218 226 191 179 138 214 212 172 173 229 240 187 210 227 228 223 225 179 182 231 207 209 212 239 234 213 234 269 196 271 235 250 223 232 229 280 44 28 105 41 99 92 72 55 109 120 119 50 124 96 59 124 110 57 130 103 74 87 48 105 136 131 133 92 109 57 146 113 74 150 87 110 65 110 145 161 156 114 111 136 147 173 124 132 101 154 167 190 161 110 102 123 169 140 111 180 119 160 197 152 146 147 132 213 193 200 136 175 188 187 208 211 144 223 196 170 202 163 184 195 200 163 191 252 235 243 172 187 202 179 261 263 206 189 276 181 274 249 221 210 229 279 224 216 207}
+do_execsql_test 1.1.10.1 {
+ SELECT nth_value(b,b+1) OVER (ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2
+} {0 {} {} {} {} {} {} {} 41 {} {} {} {} {} {} {} {} {} {} 26 {} {} {} {} {} {} {} 2 {} 29 {} {} {} 46 62 62 {} {} 16 {} 33 {} {} {} {} {} 78 {} 61 {} 59 77 {} 74 {} 27 {} 22 39 67 {} 54 85 74 90 7 61 90 62 {} 93 {} {} {} {} 23 {} 74 93 30 23 29 3 1 41 {} 65 33 2 98 86 89 25 76 {} 40 38 15 13 96 74 97 81 40 16 99 76 96 32 80 86 59 2 99 84 84 39 65 27 76 78 84 16 2 96 59 16 41 28 13 89 22 4 42 91 41 33 87 55 81 29 36 28 6 47 97 97 85 33 41 93 15 85 89 98 98 43 23 73 4 56 29 89 46 65 38 59 68 47 9 93 9 23 39 16 93 98 74 65 75 15 56 93 12 2 81 2 23 97 47 91 15 93 35 16 63 8 53 91 33}
+
+do_execsql_test 1.1.9.2 {
+ SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2
+} {0 {} {} {} {} {} {} {} {} {} {} {} {} 90 {} {} {} {} {} {} {} 81 {} {} {} 81 {} 21 {} {} {} {} 21 {} {} {} 21 {} {} {} {} {} {} 12 {} {} {} 12 {} {} 72 {} {} {} {} {} {} {} {} {} 23 {} {} {} {} {} {} {} {} {} {} {} 73 {} 23 {} {} {} {} {} {} {} {} 74 {} {} {} {} {} {} {} {} 64 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 15 {} {} {} {} {} {} 55 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} {} 27 47 {} {} {} {} {} {} {} {} {} 98 {} 98 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 29 {} {} {} {} {} {} {} 29 29 {} {} {}}
+
+do_execsql_test 1.1.9.3 {
+ SELECT nth_value(b,b+1) OVER ( ORDER BY b,a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
+} {0 1 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 7 7 7 7 7 7 7 8 8 8 8 8 8 8 9 9 10 11 11 11 11 12 12 12 12 12 13 13 13 13 13 14 15 15 15 15 15 15 15 15 16 16 16 16 16 16 16 16 16 16 17 17 19 19 19 19 20 20 21 21 21 21 21 22 22 22 22 23 23 23 23 23 25 25 26 26 26 26 26 27 27 28 29 29 29 29 30 30 30 30 30 30 30 30 31 31 31 31 31 32 32 33 33 33 33 33 33 33 33 34 34 34 34 35 35 35 36 36 36 36 36 36 36 36 36 36 36 36 37 37 37 37 38 38 38 39 39 39 39 39 40 40 40 40 41 41 41 41 41 41 42 43 43 43 43 43 43 44 44 44 44 44 46 46 46 46 47 47 47 47 47 47 47 47 47 47 49 49 49}
+
+do_execsql_test 1.1.9.4 {
+ SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
+} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 1 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.1.9.5 {
+ SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
+} {0 {} {} {} {} {} {} {} {} {} {} {} {} 90 {} {} {} {} {} {} {} 90 {} {} {} 90 1 30 {} {} {} 31 30 {} {} {} 1 40 {} 50 11 81 42 40 {} 50 81 40 {} {} 50 {} 52 {} 41 81 {} 41 {} 2 30 2 81 82 53 {} 10 {} {} 81 {} 41 10 81 30 81 {} 3 3 23 {} 3 61 80 {} 94 3 91 91 72 3 63 30 91 94 94 72 91 73 91 84 84 33 41 1 33 84 73 73 91 20 41 84 33 33 84 33 41 84 21 44 22 90 22 81 81 74 93 93 93 81 21 83 44 44 21 21 21 13 21 21 34 11 34 73 74 2 60 2 34 2 34 74 60 23 2 2 2 11 91 60 62 73 74 70 51 65 74 93 65 70 34 70 93 93 93 62 35 44 43 12 35 41 43 44 44 41 80 54 72 43 41 43 91 12 80 80 35 33 12}
+
+do_execsql_test 1.1.9.6 {
+ SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2
+} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
do_execsql_test 1.2.2.1 {
SELECT max(b) OVER ( ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
} {99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99}
do_test 1.2.7.6 {
set myres {}
- foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] {
+ foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2}] {
lappend myres [format %.2f [set r]]
}
set myres
SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2
} {1 76 78 33 11 108 52 83 79 65 26 70 103 80 36 116 51 52 128 117 71 63 84 109 78 147 88 121 106 124 85 107 171 150 80 171 120 109 158 87 168 173 162 156 195 198 177 124 121 134 141 210 157 132 161 218 226 191 179 138 214 212 172 173 229 240 187 210 227 228 223 225 179 182 231 207 209 212 239 234 213 234 269 196 271 235 250 223 232 229 280 44 28 105 41 99 92 72 55 109 120 119 50 124 96 59 124 110 57 130 103 74 87 48 105 136 131 133 92 109 57 146 113 74 150 87 110 65 110 145 161 156 114 111 136 147 173 124 132 101 154 167 190 161 110 102 123 169 140 111 180 119 160 197 152 146 147 132 213 193 200 136 175 188 187 208 211 144 223 196 170 202 163 184 195 200 163 191 252 235 243 172 187 202 179 261 263 206 189 276 181 274 249 221 210 229 279 224 216 207}
+do_execsql_test 1.2.10.1 {
+ SELECT nth_value(b,b+1) OVER (ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2
+} {0 81 86 81 46 98 97 23 41 72 29 13 28 35 16 47 47 9 24 26 98 58 8 24 30 91 58 2 56 29 73 2 42 46 62 62 73 40 16 85 33 37 81 25 9 87 78 87 61 28 59 77 90 74 9 27 41 22 39 67 72 54 85 74 90 7 61 90 62 4 93 72 96 94 29 23 95 74 93 30 23 29 3 1 41 80 65 33 2 98 86 89 25 76 65 40 38 15 13 96 74 97 81 40 16 99 76 96 32 80 86 59 2 99 84 84 39 65 27 76 78 84 16 2 96 59 16 41 28 13 89 22 4 42 91 41 33 87 55 81 29 36 28 6 47 97 97 85 33 41 93 15 85 89 98 98 43 23 73 4 56 29 89 46 65 38 59 68 47 9 93 9 23 39 16 93 98 74 65 75 15 56 93 12 2 81 2 23 97 47 91 15 93 35 16 63 8 53 91 33}
+
+do_execsql_test 1.2.9.2 {
+ SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2
+} {0 {} {} {} {} {} {} {} {} {} {} {} {} 90 {} {} {} {} {} {} {} 81 {} {} {} 81 21 21 {} {} {} {} 21 {} {} {} 21 12 {} 72 {} {} {} 12 {} 72 {} 12 {} {} 72 {} {} {} {} {} {} {} {} {} 23 {} {} {} {} {} 73 {} {} {} {} {} 73 {} 23 {} {} {} {} {} {} {} {} 74 {} {} {} {} {} {} {} {} 64 {} {} {} {} {} {} {} {} {} {} 55 {} {} {} {} {} {} 15 55 {} {} {} {} {} 55 {} {} {} {} 16 {} 26 26 {} {} {} {} 26 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} {} 47 {} {} {} {} {} 27 47 {} {} {} 98 {} {} {} {} {} 98 {} 98 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 29 {} {} {} {} {} 9 {} 29 29 {} {} {}}
+
+do_execsql_test 1.2.9.3 {
+ SELECT nth_value(b,b+1) OVER ( ORDER BY b,a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
+} {0 1 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 7 7 7 7 7 7 7 8 8 8 8 8 8 8 9 9 10 11 11 11 11 12 12 12 12 12 13 13 13 13 13 14 15 15 15 15 15 15 15 15 16 16 16 16 16 16 16 16 16 16 17 17 19 19 19 19 20 20 21 21 21 21 21 22 22 22 22 23 23 23 23 23 25 25 26 26 26 26 26 27 27 28 29 29 29 29 30 30 30 30 30 30 30 30 31 31 31 31 31 32 32 33 33 33 33 33 33 33 33 34 34 34 34 35 35 35 36 36 36 36 36 36 36 36 36 36 36 36 37 37 37 37 38 38 38 39 39 39 39 39 40 40 40 40 41 41 41 41 41 41 42 43 43 43 43 43 43 44 44 44 44 44 46 46 46 46 47 47 47 47 47 47 47 47 47 47 49 49 49}
+
+do_execsql_test 1.2.9.4 {
+ SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
+} {0 80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 1 51 51 91 91 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 2 2 62 62 62 {} {} {} {} {} {} {} {} {} {} {} 13 13 43 43 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 74 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 35 85 85 85 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 26 66 66 66 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 37 37 37 87 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 58 58 58 {} {} {} {} {} {} {} {} {} {} {} {} {} 39 39 39 89 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.2.9.5 {
+ SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
+} {0 74 32 31 84 91 74 3 93 84 74 31 12 90 31 22 74 64 43 64 64 90 74 22 43 90 1 30 62 22 31 31 30 74 64 64 1 40 33 50 11 81 42 40 13 50 81 40 13 13 50 33 52 24 41 81 34 41 34 2 30 2 81 82 53 33 10 33 33 81 34 41 10 81 30 81 4 3 3 23 94 3 61 80 84 94 3 91 91 72 3 63 30 91 94 94 72 91 73 91 84 84 33 41 1 33 84 73 73 91 20 41 84 33 33 84 33 41 84 21 44 22 90 22 81 81 74 93 93 93 81 21 83 44 44 21 21 21 13 21 21 34 11 34 73 74 2 60 2 34 2 34 74 60 23 2 2 2 11 91 60 62 73 74 70 51 65 74 93 65 70 34 70 93 93 93 62 35 44 43 12 35 41 43 44 44 41 80 54 72 43 41 43 91 12 80 80 35 33 12}
+
+do_execsql_test 1.2.9.6 {
+ SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2
+} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
do_execsql_test 1.3.2.1 {
SELECT max(b) OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2
} {0 74 41 74 23 99 26 33 2 89 81 96 59 38 68 39 62 91 46 6 99 97 27 46 78 54 97 8 67 29 93 84 77 23 16 16 93 65 35 47 7 86 74 61 91 85 24 85 43 59 12 32 56 3 91 22 90 55 15 28 89 25 47 1 56 40 43 56 16 75 36 89 98 76 81 4 94 42 30 78 33 29 53 63 2 87 37 80 84 72 41 9 61 73 95 65 13 58 96 98 1 21 74 65 35 5 73 11 51 87 41 12 8 20 31 31 15 95 22 73 79 88 34 8 11 49 34 90 59 96 60 55 75 77 44 2 7 85 57 74 29 70 59 19 39 26 26 47 80 90 36 58 47 9 72 72 66 33 93 75 64 81 9 23 37 13 12 14 62 91 36 91 33 15 34 36 99 3 95 69 58 52 30 50 84 10 84 33 21 39 44 58 30 38 34 83 27 82 17 7}
do_test 1.3.7.6 {
set myres {}
- foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2}] {
+ foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN CURRENT ROW AND CURRENT ROW) FROM t2}] {
lappend myres [format %.2f [set r]]
}
set myres
SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN CURRENT ROW AND CURRENT ROW) FROM t2
} {1 76 78 33 11 108 52 83 79 65 26 70 103 80 36 116 51 52 128 117 71 63 84 109 78 147 88 121 106 124 85 107 171 150 80 171 120 109 158 87 168 173 162 156 195 198 177 124 121 134 141 210 157 132 161 218 226 191 179 138 214 212 172 173 229 240 187 210 227 228 223 225 179 182 231 207 209 212 239 234 213 234 269 196 271 235 250 223 232 229 280 44 28 105 41 99 92 72 55 109 120 119 50 124 96 59 124 110 57 130 103 74 87 48 105 136 131 133 92 109 57 146 113 74 150 87 110 65 110 145 161 156 114 111 136 147 173 124 132 101 154 167 190 161 110 102 123 169 140 111 180 119 160 197 152 146 147 132 213 193 200 136 175 188 187 208 211 144 223 196 170 202 163 184 195 200 163 191 252 235 243 172 187 202 179 261 263 206 189 276 181 274 249 221 210 229 279 224 216 207}
+do_execsql_test 1.3.10.1 {
+ SELECT nth_value(b,b+1) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND CURRENT ROW) FROM t2
+} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.3.9.2 {
+ SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW AND CURRENT ROW) FROM t2
+} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.3.9.3 {
+ SELECT nth_value(b,b+1) OVER ( ORDER BY b,a RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2
+} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.3.9.4 {
+ SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2
+} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.3.9.5 {
+ SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a RANGE BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2
+} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.3.9.6 {
+ SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN CURRENT ROW AND CURRENT ROW) FROM t2
+} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
do_execsql_test 1.4.2.1 {
SELECT max(b) OVER ( ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2
} {99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 95 95 84 84 84 84 84 84 84 84 83 83 83 83 83 83 83 83 83 82 82 17 7}
do_test 1.4.7.6 {
set myres {}
- foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2}] {
+ foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) FROM t2}] {
lappend myres [format %.2f [set r]]
}
set myres
SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) FROM t2
} {1 76 78 33 11 108 52 83 79 65 26 70 103 80 36 116 51 52 128 117 71 63 84 109 78 147 88 121 106 124 85 107 171 150 80 171 120 109 158 87 168 173 162 156 195 198 177 124 121 134 141 210 157 132 161 218 226 191 179 138 214 212 172 173 229 240 187 210 227 228 223 225 179 182 231 207 209 212 239 234 213 234 269 196 271 235 250 223 232 229 280 44 28 105 41 99 92 72 55 109 120 119 50 124 96 59 124 110 57 130 103 74 87 48 105 136 131 133 92 109 57 146 113 74 150 87 110 65 110 145 161 156 114 111 136 147 173 124 132 101 154 167 190 161 110 102 123 169 140 111 180 119 160 197 152 146 147 132 213 193 200 136 175 188 187 208 211 144 223 196 170 202 163 184 195 200 163 191 252 235 243 172 187 202 179 261 263 206 189 276 181 274 249 221 210 229 279 224 216 207}
+do_execsql_test 1.4.10.1 {
+ SELECT nth_value(b,b+1) OVER (ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) FROM t2
+} {0 4 61 42 8 35 77 7 81 96 9 11 89 32 53 91 30 51 56 54 73 22 59 75 74 78 8 16 65 15 8 31 87 90 12 32 96 74 76 37 85 90 15 35 2 60 36 75 9 51 47 63 51 90 26 42 26 8 76 80 90 37 87 56 79 5 87 8 2 39 73 64 36 90 72 78 36 73 51 33 20 41 2 26 37 33 8 14 33 81 55 1 9 12 39 64 87 72 34 82 21 34 99 62 74 41 69 22 75 27 58 8 79 77 26 26 55 {} 29 30 7 {} 66 55 2 34 64 {} 33 {} 44 84 {} {} 95 85 19 {} 83 {} 91 {} {} 9 50 91 33 34 {} {} 84 {} 7 9 {} {} {} 44 {} {} {} {} 91 84 {} 95 95 52 {} {} {} {} {} 21 {} {} {} 58 {} {} {} {} {} {} {} 83 {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.4.9.2 {
+ SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) FROM t2
+} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 81 {} {} {} 21 {} {} {} {} {} {} {} {} {} {} {} 12 {} 62 {} {} {} 12 {} {} {} 72 {} {} {} {} {} {} {} {} {} {} {} {} 53 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 95 {} {} {} {} {} {} 85 {} {} {} {} {} {} {} {} {} {} {} 56 {} 36 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 57 {} {} {} {} {} 7 {} {} {} {} {} {} {} {} {} {} 8 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.4.9.3 {
+ SELECT nth_value(b,b+1) OVER ( ORDER BY b,a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2
+} {0 1 2 2 3 3 5 6 7 8 8 9 9 10 11 12 12 13 13 14 15 16 16 17 19 20 21 22 23 23 24 25 26 26 27 28 29 30 31 31 33 33 33 33 34 34 35 36 36 36 37 37 38 39 39 40 41 41 42 43 44 46 47 47 47 47 49 51 52 53 54 55 56 56 57 58 58 58 59 59 59 61 61 62 63 65 65 65 67 69 70 72 72 73 74 74 74 74 75 76 77 78 80 81 81 83 84 84 84 85 85 87 87 88 89 89 90 90 90 91 91 91 93 93 95 95 96 96 97 98 99 99 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.4.9.4 {
+ SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2
+} {0 80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 11 61 81 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 12 12 72 82 {} {} {} {} {} {} {} {} {} {} {} {} 13 23 63 73 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 74 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 35 85 85 95 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 26 76 86 96 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 37 47 47 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 58 58 68 {} {} {} {} {} {} {} {} {} {} {} {} {} 39 49 59 99 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.4.9.5 {
+ SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2
+} {0 64 42 81 94 1 44 73 74 44 85 22 33 41 72 93 34 65 54 5 15 81 15 63 84 21 2 62 54 93 43 33 2 75 16 86 23 12 85 62 13 53 94 12 75 23 73 72 96 46 33 55 25 26 74 34 87 84 87 55 53 25 84 75 56 66 54 36 97 55 78 84 84 95 74 65 17 87 77 96 8 47 95 34 89 98 7 46 6 96 8 47 95 56 89 59 36 36 78 96 89 29 37 95 56 39 {} 8 58 67 85 86 {} 58 49 {} 29 76 {} 77 {} 78 56 98 36 97 {} 59 89 89 47 78 {} {} {} 38 68 58 {} 58 38 {} 98 {} {} {} 19 57 9 {} 9 {} {} 7 {} {} {} 39 89 38 78 39 {} {} 8 19 {} {} {} {} 89 {} 39 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.4.9.6 {
+ SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) FROM t2
+} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
do_execsql_test 1.5.2.1 {
SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2
} {{} {} {} {} 0 74 74 74 74 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99}
do_test 1.5.7.6 {
set myres {}
- foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2}] {
+ foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING) FROM t2}] {
lappend myres [format %.2f [set r]]
}
set myres
SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING) FROM t2
} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+do_execsql_test 1.5.10.1 {
+ SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING) FROM t2
+} {{} {} {} {} {} {} {} {} 41 {} {} {} {} {} {} {} {} {} {} 26 {} {} {} {} {} {} {} 2 {} {} {} {} {} 46 62 62 {} {} {} {} 33 {} {} {} {} {} 78 {} 61 {} 59 77 {} 74 {} 27 {} {} 39 67 {} 54 85 74 90 7 61 90 62 {} 93 {} {} {} {} 23 {} 74 93 {} 23 29 3 1 41 {} 65 33 2 98 86 89 25 76 {} 40 38 15 {} {} 74 97 81 40 16 99 76 96 32 80 86 59 2 99 84 84 39 65 27 76 78 84 16 2 96 59 16 41 28 13 89 22 4 42 91 41 33 87 55 81 29 36 28 6 47 97 97 85 33 41 93 15 85 89 98 98 43 23 73 4 56 29 89 46 65 38 59 68 47 9 93 9 23 39 16 93 98 74 65 75 15 56 93 12 2 81 2 23 97 47 91 15 93 35 16 63 8 53 91 33}
+
+do_execsql_test 1.5.9.2 {
+ SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING) FROM t2
+} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 81 {} {} {} 81 {} {} {} {} {} {} 21 {} {} {} {} {} {} {} {} {} {} 12 {} {} {} 12 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 73 {} 23 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 15 {} {} {} {} {} {} 55 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} {} {} 47 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 29 29 {} {} {}}
+
+do_execsql_test 1.5.9.3 {
+ SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2
+} {{} {} {} {} {} {} {} 2 2 2 3 3 3 3 4 4 4 5 5 5 6 7 7 7 7 7 7 7 8 8 8 8 8 8 8 9 9 10 11 11 11 11 12 12 12 12 12 13 13 13 13 13 14 15 15 15 15 15 15 15 15 16 16 16 16 16 16 16 16 16 16 17 17 19 19 19 19 20 20 21 21 21 21 21 22 22 22 22 23 23 23 23 23 25 25 26 26 26 26 26 27 27 28 29 29 29 29 30 30 30 30 30 30 30 30 31 31 31 31 31 32 32 33 33 33 33 33 33 33 33 34 34 34 34 35 35 35 36 36 36 36 36 36 36 36 36 36 36 36 37 37 37 37 38 38 38 39 39 39 39 39 40 40 40 40 41 41 41 41 41 41 42 43 43 43 43 43 43 44 44 44 44 44 46 46 46 46 47 47 47 47 47 47 47 47 47 47 49 49 49}
+
+do_execsql_test 1.5.9.4 {
+ SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2
+} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.5.9.5 {
+ SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING ) FROM t2
+} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 90 {} {} {} 90 1 30 {} {} {} {} 30 {} {} {} 1 40 {} 50 11 81 {} 40 {} 50 81 40 {} {} 50 {} {} {} 41 81 {} 41 {} 2 30 2 81 82 {} {} 10 {} {} 81 {} 41 10 81 30 81 {} {} 3 23 {} 3 61 80 {} {} 3 91 91 72 3 63 30 91 94 94 72 91 73 91 84 84 33 41 1 33 84 73 73 91 20 41 84 33 33 84 33 41 84 21 44 22 90 22 81 81 74 93 93 93 81 21 83 44 44 21 21 21 13 21 21 34 11 34 73 74 2 60 2 34 2 34 74 60 23 2 2 2 11 91 60 62 73 74 70 51 65 74 93 65 70 34 70 93 93 93 62 35 44 43 12 35 41 43 44 44 41 80 54 72 43 41 43 91 12 80 80 35 33 12}
+
+do_execsql_test 1.5.9.6 {
+ SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 PRECEDING) FROM t2
+} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
do_execsql_test 1.6.2.1 {
SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2
} {{} {} 0 74 74 74 74 99 99 99 33 89 89 96 96 96 68 68 68 91 91 91 99 99 99 97 78 78 97 97 97 67 93 93 93 84 77 23 93 93 93 65 47 86 86 86 91 91 91 85 85 85 59 59 56 56 91 91 91 90 90 55 89 89 89 47 56 56 56 56 56 75 75 89 98 98 98 81 94 94 94 78 78 78 53 63 63 87 87 87 84 84 84 72 61 73 95 95 95 65 96 98 98 98 74 74 74 65 73 73 73 87 87 87 41 20 31 31 31 95 95 95 79 88 88 88 34 49 49 90 90 96 96 96 75 77 77 77 44 85 85 85 74 74 70 70 59 39 39 47 80 90 90 90 58 58 72 72 72 72 93 93 93 81 81 81 37 37 37 14 62 91 91 91 91 91 34 36 99 99 99 95 95 69 58 52 84 84 84 84 84 39 44 58 58 58 38 83 83 83}
do_test 1.6.7.6 {
set myres {}
- foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2}] {
+ foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING) FROM t2}] {
lappend myres [format %.2f [set r]]
}
set myres
SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING) FROM t2
} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+do_execsql_test 1.6.10.1 {
+ SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING) FROM t2
+} {{} {} {} {} {} {} {} {} 26 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 89 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 53 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 58 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 77 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.6.9.2 {
+ SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING) FROM t2
+} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 61 {} {} {} 81 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 22 {} {} {} 12 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.6.9.3 {
+ SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2
+} {{} {} {} {} 1 2 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.6.9.4 {
+ SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2
+} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.6.9.5 {
+ SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING ) FROM t2
+} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 61 {} {} {} 81 {} {} {} {} {} {} {} {} {} {} {} 91 {} {} {} {} {} 22 {} {} {} 12 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.6.9.6 {
+ SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND 2 PRECEDING) FROM t2
+} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
do_execsql_test 1.7.2.1 {
SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
} {0 74 74 74 74 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99}
do_test 1.7.7.6 {
set myres {}
- foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2}] {
+ foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2}] {
lappend myres [format %.2f [set r]]
}
set myres
SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2
} {1 76 78 33 11 108 52 83 79 65 26 70 103 80 36 116 51 52 128 117 71 63 84 109 78 147 88 121 106 124 85 107 171 150 80 171 120 109 158 87 168 173 162 156 195 198 177 124 121 134 141 210 157 132 161 218 226 191 179 138 214 212 172 173 229 240 187 210 227 228 223 225 179 182 231 207 209 212 239 234 213 234 269 196 271 235 250 223 232 229 280 44 28 105 41 99 92 72 55 109 120 119 50 124 96 59 124 110 57 130 103 74 87 48 105 136 131 133 92 109 57 146 113 74 150 87 110 65 110 145 161 156 114 111 136 147 173 124 132 101 154 167 190 161 110 102 123 169 140 111 180 119 160 197 152 146 147 132 213 193 200 136 175 188 187 208 211 144 223 196 170 202 163 184 195 200 163 191 252 235 243 172 187 202 179 261 263 206 189 276 181 274 249 221 210 229 279 224 216 207}
+do_execsql_test 1.7.10.1 {
+ SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2
+} {0 {} {} {} {} {} {} {} 41 {} {} {} {} {} {} {} {} {} {} 26 {} {} {} {} {} {} {} 2 {} 29 {} {} {} 46 62 62 {} {} 16 {} 33 {} {} {} {} {} 78 {} 61 {} 59 77 {} 74 {} 27 {} 22 39 67 {} 54 85 74 90 7 61 90 62 {} 93 {} {} {} {} 23 {} 74 93 30 23 29 3 1 41 {} 65 33 2 98 86 89 25 76 {} 40 38 15 13 96 74 97 81 40 16 99 76 96 32 80 86 59 2 99 84 84 39 65 27 76 78 84 16 2 96 59 16 41 28 13 89 22 4 42 91 41 33 87 55 81 29 36 28 6 47 97 97 85 33 41 93 15 85 89 98 98 43 23 73 4 56 29 89 46 65 38 59 68 47 9 93 9 23 39 16 93 98 74 65 75 15 56 93 12 2 81 2 23 97 47 91 15 93 35 16 63 8 53 91 33}
+
+do_execsql_test 1.7.9.2 {
+ SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2
+} {0 {} {} {} {} {} {} {} {} {} {} {} {} 90 {} {} {} {} {} {} {} 81 {} {} {} 81 {} 21 {} {} {} {} 21 {} {} {} 21 {} {} {} {} {} {} 12 {} {} {} 12 {} {} 72 {} {} {} {} {} {} {} {} {} 23 {} {} {} {} {} {} {} {} {} {} {} 73 {} 23 {} {} {} {} {} {} {} {} 74 {} {} {} {} {} {} {} {} 64 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 15 {} {} {} {} {} {} 55 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} {} 27 47 {} {} {} {} {} {} {} {} {} 98 {} 98 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 29 {} {} {} {} {} {} {} 29 29 {} {} {}}
+
+do_execsql_test 1.7.9.3 {
+ SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
+} {0 1 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 7 7 7 7 7 7 7 8 8 8 8 8 8 8 9 9 10 11 11 11 11 12 12 12 12 12 13 13 13 13 13 14 15 15 15 15 15 15 15 15 16 16 16 16 16 16 16 16 16 16 17 17 19 19 19 19 20 20 21 21 21 21 21 22 22 22 22 23 23 23 23 23 25 25 26 26 26 26 26 27 27 28 29 29 29 29 30 30 30 30 30 30 30 30 31 31 31 31 31 32 32 33 33 33 33 33 33 33 33 34 34 34 34 35 35 35 36 36 36 36 36 36 36 36 36 36 36 36 37 37 37 37 38 38 38 39 39 39 39 39 40 40 40 40 41 41 41 41 41 41 42 43 43 43 43 43 43 44 44 44 44 44 46 46 46 46 47 47 47 47 47 47 47 47 47 47 49 49 49}
+
+do_execsql_test 1.7.9.4 {
+ SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
+} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 1 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.7.9.5 {
+ SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) FROM t2
+} {0 {} {} {} {} {} {} {} {} {} {} {} {} 90 {} {} {} {} {} {} {} 90 {} {} {} 90 1 30 {} {} {} 31 30 {} {} {} 1 40 {} 50 11 81 42 40 {} 50 81 40 {} {} 50 {} 52 {} 41 81 {} 41 {} 2 30 2 81 82 53 {} 10 {} {} 81 {} 41 10 81 30 81 {} 3 3 23 {} 3 61 80 {} 94 3 91 91 72 3 63 30 91 94 94 72 91 73 91 84 84 33 41 1 33 84 73 73 91 20 41 84 33 33 84 33 41 84 21 44 22 90 22 81 81 74 93 93 93 81 21 83 44 44 21 21 21 13 21 21 34 11 34 73 74 2 60 2 34 2 34 74 60 23 2 2 2 11 91 60 62 73 74 70 51 65 74 93 65 70 34 70 93 93 93 62 35 44 43 12 35 41 43 44 44 41 80 54 72 43 41 43 91 12 80 80 35 33 12}
+
+do_execsql_test 1.7.9.6 {
+ SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t2
+} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
do_execsql_test 1.8.2.1 {
SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2
} {0 74 74 74 74 99 99 99 99 99 89 96 96 96 96 96 68 91 91 91 99 99 99 99 99 97 97 97 97 97 97 93 93 93 93 84 93 93 93 93 93 86 86 86 91 91 91 91 91 85 85 85 59 59 91 91 91 91 91 90 90 89 89 89 89 56 56 56 56 75 75 89 98 98 98 98 98 94 94 94 94 78 78 78 63 87 87 87 87 87 84 84 84 73 95 95 95 95 96 98 98 98 98 98 74 74 74 73 73 87 87 87 87 87 41 31 31 95 95 95 95 95 88 88 88 88 49 90 90 96 96 96 96 96 77 77 77 85 85 85 85 85 74 74 70 70 59 47 80 90 90 90 90 90 72 72 72 72 93 93 93 93 93 81 81 81 37 37 62 91 91 91 91 91 91 91 99 99 99 99 99 95 95 69 84 84 84 84 84 84 84 58 58 58 58 83 83 83 83 83}
do_test 1.8.7.6 {
set myres {}
- foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2}] {
+ foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND CURRENT ROW) FROM t2}] {
lappend myres [format %.2f [set r]]
}
set myres
SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND CURRENT ROW) FROM t2
} {1 76 78 33 11 108 52 83 79 65 26 70 103 80 36 116 51 52 128 117 71 63 84 109 78 147 88 121 106 124 85 107 171 150 80 171 120 109 158 87 168 173 162 156 195 198 177 124 121 134 141 210 157 132 161 218 226 191 179 138 214 212 172 173 229 240 187 210 227 228 223 225 179 182 231 207 209 212 239 234 213 234 269 196 271 235 250 223 232 229 280 44 28 105 41 99 92 72 55 109 120 119 50 124 96 59 124 110 57 130 103 74 87 48 105 136 131 133 92 109 57 146 113 74 150 87 110 65 110 145 161 156 114 111 136 147 173 124 132 101 154 167 190 161 110 102 123 169 140 111 180 119 160 197 152 146 147 132 213 193 200 136 175 188 187 208 211 144 223 196 170 202 163 184 195 200 163 191 252 235 243 172 187 202 179 261 263 206 189 276 181 274 249 221 210 229 279 224 216 207}
+do_execsql_test 1.8.10.1 {
+ SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW) FROM t2
+} {0 {} {} {} {} {} {} {} 26 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 56 {} {} {} {} {} {} {} {} {} 89 {} {} {} {} {} {} {} {} {} {} {} 4 {} {} {} {} {} {} {} {} 53 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 58 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 77 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 99 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.8.9.2 {
+ SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW) FROM t2
+} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 61 {} {} {} 81 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 22 {} {} {} 12 {} {} {} {} {} {} {} {} {} {} {} {} 43 {} {} {} {} {} {} {} {} {} {} {} {} {} 33 {} {} {} {} {} {} {} {} 4 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.8.9.3 {
+ SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2
+} {0 1 1 1 1 2 2 3 4 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.8.9.4 {
+ SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2
+} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 1 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.8.9.5 {
+ SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND CURRENT ROW ) FROM t2
+} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 61 {} {} {} 81 {} {} {} {} {} {} {} {} {} {} {} 91 {} {} {} {} {} 22 {} {} {} 12 {} {} {} {} {} {} {} {} {} {} {} {} 43 {} {} {} {} {} {} {} {} {} {} {} {} {} 33 {} {} {} {} {} {} {} {} 4 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.8.9.6 {
+ SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND CURRENT ROW) FROM t2
+} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
do_execsql_test 1.9.2.1 {
SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2
} {0 74 41 74 23 99 26 33 2 89 81 96 59 38 68 39 62 91 46 6 99 97 27 46 78 54 97 8 67 29 93 84 77 23 16 16 93 65 35 47 7 86 74 61 91 85 24 85 43 59 12 32 56 3 91 22 90 55 15 28 89 25 47 1 56 40 43 56 16 75 36 89 98 76 81 4 94 42 30 78 33 29 53 63 2 87 37 80 84 72 41 9 61 73 95 65 13 58 96 98 1 21 74 65 35 5 73 11 51 87 41 12 8 20 31 31 15 95 22 73 79 88 34 8 11 49 34 90 59 96 60 55 75 77 44 2 7 85 57 74 29 70 59 19 39 26 26 47 80 90 36 58 47 9 72 72 66 33 93 75 64 81 9 23 37 13 12 14 62 91 36 91 33 15 34 36 99 3 95 69 58 52 30 50 84 10 84 33 21 39 44 58 30 38 34 83 27 82 17 7}
do_test 1.9.7.6 {
set myres {}
- foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2}] {
+ foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND CURRENT ROW) FROM t2}] {
lappend myres [format %.2f [set r]]
}
set myres
SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND CURRENT ROW) FROM t2
} {1 76 78 33 11 108 52 83 79 65 26 70 103 80 36 116 51 52 128 117 71 63 84 109 78 147 88 121 106 124 85 107 171 150 80 171 120 109 158 87 168 173 162 156 195 198 177 124 121 134 141 210 157 132 161 218 226 191 179 138 214 212 172 173 229 240 187 210 227 228 223 225 179 182 231 207 209 212 239 234 213 234 269 196 271 235 250 223 232 229 280 44 28 105 41 99 92 72 55 109 120 119 50 124 96 59 124 110 57 130 103 74 87 48 105 136 131 133 92 109 57 146 113 74 150 87 110 65 110 145 161 156 114 111 136 147 173 124 132 101 154 167 190 161 110 102 123 169 140 111 180 119 160 197 152 146 147 132 213 193 200 136 175 188 187 208 211 144 223 196 170 202 163 184 195 200 163 191 252 235 243 172 187 202 179 261 263 206 189 276 181 274 249 221 210 229 279 224 216 207}
+do_execsql_test 1.9.10.1 {
+ SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN CURRENT ROW AND CURRENT ROW) FROM t2
+} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.9.9.2 {
+ SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW AND CURRENT ROW) FROM t2
+} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.9.9.3 {
+ SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2
+} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.9.9.4 {
+ SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2
+} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.9.9.5 {
+ SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN CURRENT ROW AND CURRENT ROW ) FROM t2
+} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.9.9.6 {
+ SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND CURRENT ROW) FROM t2
+} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
do_execsql_test 1.10.2.1 {
SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2
} {74 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99}
do_test 1.10.7.6 {
set myres {}
- foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2}] {
+ foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING) FROM t2}] {
lappend myres [format %.2f [set r]]
}
set myres
SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING) FROM t2
} {1 76 78 33 11 108 52 83 79 65 26 70 103 80 36 116 51 52 128 117 71 63 84 109 78 147 88 121 106 124 85 107 171 150 80 171 120 109 158 87 168 173 162 156 195 198 177 124 121 134 141 210 157 132 161 218 226 191 179 138 214 212 172 173 229 240 187 210 227 228 223 225 179 182 231 207 209 212 239 234 213 234 269 196 271 235 250 223 232 229 280 44 28 105 41 99 92 72 55 109 120 119 50 124 96 59 124 110 57 130 103 74 87 48 105 136 131 133 92 109 57 146 113 74 150 87 110 65 110 145 161 156 114 111 136 147 173 124 132 101 154 167 190 161 110 102 123 169 140 111 180 119 160 197 152 146 147 132 213 193 200 136 175 188 187 208 211 144 223 196 170 202 163 184 195 200 163 191 252 235 243 172 187 202 179 261 263 206 189 276 181 274 249 221 210 229 279 224 216 207}
+do_execsql_test 1.10.10.1 {
+ SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING) FROM t2
+} {0 {} {} {} {} {} {} {} 41 {} {} {} {} {} {} {} {} {} {} 26 {} {} {} {} {} {} {} 2 {} 29 {} {} {} 46 62 62 {} {} 16 {} 33 {} {} {} {} {} 78 {} 61 {} 59 77 90 74 {} 27 {} 22 39 67 {} 54 85 74 90 7 61 90 62 {} 93 {} {} 94 {} 23 {} 74 93 30 23 29 3 1 41 80 65 33 2 98 86 89 25 76 65 40 38 15 13 96 74 97 81 40 16 99 76 96 32 80 86 59 2 99 84 84 39 65 27 76 78 84 16 2 96 59 16 41 28 13 89 22 4 42 91 41 33 87 55 81 29 36 28 6 47 97 97 85 33 41 93 15 85 89 98 98 43 23 73 4 56 29 89 46 65 38 59 68 47 9 93 9 23 39 16 93 98 74 65 75 15 56 93 12 2 81 2 23 97 47 91 15 93 35 16 63 8 53 91 33}
+
+do_execsql_test 1.10.9.2 {
+ SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING) FROM t2
+} {0 {} {} {} {} {} {} {} {} {} {} {} {} 90 {} {} {} {} {} {} {} 81 {} {} {} 81 {} 21 {} {} {} {} 21 {} {} {} 21 12 {} {} {} {} {} 12 {} 72 {} 12 {} {} 72 {} {} {} {} {} {} {} {} {} 23 {} {} {} {} {} 73 {} {} {} {} {} 73 {} 23 {} {} {} {} {} {} {} {} 74 {} {} {} {} {} {} {} {} 64 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 15 55 {} {} {} {} {} 55 {} {} {} {} 16 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} {} 47 {} {} {} {} {} 27 47 {} {} {} {} {} {} {} {} {} 98 {} 98 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 29 {} {} {} {} {} 9 {} 29 29 {} {} {}}
+
+do_execsql_test 1.10.9.3 {
+ SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2
+} {0 1 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 7 7 7 7 7 7 7 8 8 8 8 8 8 8 9 9 10 11 11 11 11 12 12 12 12 12 13 13 13 13 13 14 15 15 15 15 15 15 15 15 16 16 16 16 16 16 16 16 16 16 17 17 19 19 19 19 20 20 21 21 21 21 21 22 22 22 22 23 23 23 23 23 25 25 26 26 26 26 26 27 27 28 29 29 29 29 30 30 30 30 30 30 30 30 31 31 31 31 31 32 32 33 33 33 33 33 33 33 33 34 34 34 34 35 35 35 36 36 36 36 36 36 36 36 36 36 36 36 37 37 37 37 38 38 38 39 39 39 39 39 40 40 40 40 41 41 41 41 41 41 42 43 43 43 43 43 43 44 44 44 44 44 46 46 46 46 47 47 47 47 47 47 47 47 47 47 49 49 49}
+
+do_execsql_test 1.10.9.4 {
+ SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2
+} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 1 1 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 2 2 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 13 13 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.10.9.5 {
+ SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING ) FROM t2
+} {0 {} {} {} {} {} {} {} {} {} {} {} {} 90 {} {} {} {} {} {} {} 90 {} {} {} 90 1 30 {} {} 31 31 30 {} {} {} 1 40 {} 50 11 81 42 40 {} 50 81 40 {} {} 50 {} 52 {} 41 81 {} 41 {} 2 30 2 81 82 53 {} 10 {} {} 81 {} 41 10 81 30 81 {} 3 3 23 94 3 61 80 {} 94 3 91 91 72 3 63 30 91 94 94 72 91 73 91 84 84 33 41 1 33 84 73 73 91 20 41 84 33 33 84 33 41 84 21 44 22 90 22 81 81 74 93 93 93 81 21 83 44 44 21 21 21 13 21 21 34 11 34 73 74 2 60 2 34 2 34 74 60 23 2 2 2 11 91 60 62 73 74 70 51 65 74 93 65 70 34 70 93 93 93 62 35 44 43 12 35 41 43 44 44 41 80 54 72 43 41 43 91 12 80 80 35 33 12}
+
+do_execsql_test 1.10.9.6 {
+ SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND 4 FOLLOWING) FROM t2
+} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
do_execsql_test 1.11.2.1 {
SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2
} {74 74 74 99 99 99 99 99 99 99 96 96 96 96 96 96 91 91 99 99 99 99 99 99 99 97 97 97 97 97 97 93 93 93 93 93 93 93 93 93 93 86 91 91 91 91 91 91 91 85 85 85 91 91 91 91 91 91 91 90 90 89 89 89 89 56 56 75 75 89 98 98 98 98 98 98 98 94 94 94 94 78 78 87 87 87 87 87 87 87 84 84 95 95 95 95 96 98 98 98 98 98 98 98 74 74 74 87 87 87 87 87 87 87 41 95 95 95 95 95 95 95 88 88 88 90 90 96 96 96 96 96 96 96 77 85 85 85 85 85 85 85 74 74 70 70 80 90 90 90 90 90 90 90 72 72 93 93 93 93 93 93 93 81 81 81 62 91 91 91 91 91 91 91 99 99 99 99 99 99 99 95 95 84 84 84 84 84 84 84 84 58 58 83 83 83 83 83 83 83}
do_test 1.11.7.6 {
set myres {}
- foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2}] {
+ foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING) FROM t2}] {
lappend myres [format %.2f [set r]]
}
set myres
SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING) FROM t2
} {1 76 78 33 11 108 52 83 79 65 26 70 103 80 36 116 51 52 128 117 71 63 84 109 78 147 88 121 106 124 85 107 171 150 80 171 120 109 158 87 168 173 162 156 195 198 177 124 121 134 141 210 157 132 161 218 226 191 179 138 214 212 172 173 229 240 187 210 227 228 223 225 179 182 231 207 209 212 239 234 213 234 269 196 271 235 250 223 232 229 280 44 28 105 41 99 92 72 55 109 120 119 50 124 96 59 124 110 57 130 103 74 87 48 105 136 131 133 92 109 57 146 113 74 150 87 110 65 110 145 161 156 114 111 136 147 173 124 132 101 154 167 190 161 110 102 123 169 140 111 180 119 160 197 152 146 147 132 213 193 200 136 175 188 187 208 211 144 223 196 170 202 163 184 195 200 163 191 252 235 243 172 187 202 179 261 263 206 189 276 181 274 249 221 210 229 279 224 216 207}
+do_execsql_test 1.11.10.1 {
+ SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING) FROM t2
+} {0 {} {} {} {} {} {} {} 26 {} {} {} {} {} {} {} {} {} {} 97 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 56 {} {} {} {} {} {} {} {} {} 89 {} {} {} {} {} {} {} {} {} {} {} 4 {} {} {} {} {} {} {} {} 53 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 58 {} {} {} {} 73 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 77 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 99 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.11.9.2 {
+ SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING) FROM t2
+} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 61 {} {} {} 81 {} {} {} {} {} {} {} {} {} {} {} 12 {} {} {} {} {} 22 {} {} {} 12 {} {} {} {} {} {} {} {} {} {} {} {} 43 {} {} {} {} {} {} {} {} {} {} {} {} {} 33 {} {} {} {} {} {} {} {} 4 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 15 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.11.9.3 {
+ SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2
+} {0 1 1 1 1 2 2 3 4 6 7 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.11.9.4 {
+ SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2
+} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 1 1 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 2 2 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 13 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.11.9.5 {
+ SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING ) FROM t2
+} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 61 {} {} {} 81 {} {} {} {} {} {} {} {} {} {} {} 91 {} {} {} {} {} 22 {} {} {} 12 {} {} {} {} {} {} {} {} {} {} {} {} 43 {} {} {} {} {} {} {} {} {} {} {} {} {} 33 {} {} {} {} {} {} {} {} 4 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 15 {} {} {} {} {} {} {} {} {} {} {} 16 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.11.9.6 {
+ SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND 2 FOLLOWING) FROM t2
+} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
do_execsql_test 1.12.2.1 {
SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2
} {74 99 99 99 99 99 89 96 96 96 96 96 68 91 91 91 99 99 99 99 99 97 97 97 97 97 97 93 93 93 93 84 93 93 93 93 93 86 86 86 91 91 91 91 91 85 85 85 59 59 91 91 91 91 91 90 90 89 89 89 89 56 56 56 56 75 75 89 98 98 98 98 98 94 94 94 94 78 78 78 63 87 87 87 87 87 84 84 84 73 95 95 95 95 96 98 98 98 98 98 74 74 74 73 73 87 87 87 87 87 41 31 31 95 95 95 95 95 88 88 88 88 49 90 90 96 96 96 96 96 77 77 77 85 85 85 85 85 74 74 70 70 59 47 80 90 90 90 90 90 72 72 72 72 93 93 93 93 93 81 81 81 37 37 62 91 91 91 91 91 91 91 99 99 99 99 99 95 95 69 84 84 84 84 84 84 84 58 58 58 58 83 83 83 83 83 82 82 17 7}
do_test 1.12.7.6 {
set myres {}
- foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2}] {
+ foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING) FROM t2}] {
lappend myres [format %.2f [set r]]
}
set myres
SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING) FROM t2
} {1 76 78 33 11 108 52 83 79 65 26 70 103 80 36 116 51 52 128 117 71 63 84 109 78 147 88 121 106 124 85 107 171 150 80 171 120 109 158 87 168 173 162 156 195 198 177 124 121 134 141 210 157 132 161 218 226 191 179 138 214 212 172 173 229 240 187 210 227 228 223 225 179 182 231 207 209 212 239 234 213 234 269 196 271 235 250 223 232 229 280 44 28 105 41 99 92 72 55 109 120 119 50 124 96 59 124 110 57 130 103 74 87 48 105 136 131 133 92 109 57 146 113 74 150 87 110 65 110 145 161 156 114 111 136 147 173 124 132 101 154 167 190 161 110 102 123 169 140 111 180 119 160 197 152 146 147 132 213 193 200 136 175 188 187 208 211 144 223 196 170 202 163 184 195 200 163 191 252 235 243 172 187 202 179 261 263 206 189 276 181 274 249 221 210 229 279 224 216 207}
+do_execsql_test 1.12.10.1 {
+ SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING) FROM t2
+} {0 {} {} {} {} {} {} {} 81 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 90 {} {} {} {} {} {} {} {} {} 56 {} {} {} {} {} {} {} {} {} {} {} 78 {} {} {} {} {} {} {} {} 37 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 21 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 85 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 58 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.12.9.2 {
+ SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING) FROM t2
+} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 81 {} {} {} 21 {} {} {} {} {} {} {} {} {} {} {} 12 {} {} {} {} {} 12 {} {} {} 72 {} {} {} {} {} {} {} {} {} {} {} {} 53 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.12.9.3 {
+ SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2
+} {0 1 2 2 3 3 5 6 7 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.12.9.4 {
+ SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2
+} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 1 11 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 12 12 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 13 23 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.12.9.5 {
+ SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING ) FROM t2
+} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 81 {} {} {} 21 {} {} {} {} {} {} {} {} {} {} {} 12 {} {} {} {} {} 12 {} {} {} 72 {} {} {} {} {} {} {} {} {} {} {} {} 53 {} {} {} {} {} {} {} {} {} {} {} {} {} 74 {} {} {} {} {} {} {} {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.12.9.6 {
+ SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING) FROM t2
+} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
do_execsql_test 1.13.2.1 {
SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2
} {74 99 99 99 33 89 89 96 96 96 68 68 68 91 91 91 99 99 99 97 78 78 97 97 97 67 93 93 93 84 77 23 93 93 93 65 47 86 86 86 91 91 91 85 85 85 59 59 56 56 91 91 91 90 90 55 89 89 89 47 56 56 56 56 56 75 75 89 98 98 98 81 94 94 94 78 78 78 53 63 63 87 87 87 84 84 84 72 61 73 95 95 95 65 96 98 98 98 74 74 74 65 73 73 73 87 87 87 41 20 31 31 31 95 95 95 79 88 88 88 34 49 49 90 90 96 96 96 75 77 77 77 44 85 85 85 74 74 70 70 59 39 39 47 80 90 90 90 58 58 72 72 72 72 93 93 93 81 81 81 37 37 37 14 62 91 91 91 91 91 34 36 99 99 99 95 95 69 58 52 84 84 84 84 84 39 44 58 58 58 38 83 83 83 82 82 17 7 {} {}}
do_test 1.13.7.6 {
set myres {}
- foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2}] {
+ foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING) FROM t2}] {
lappend myres [format %.2f [set r]]
}
set myres
SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING) FROM t2
} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+do_execsql_test 1.13.10.1 {
+ SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING) FROM t2
+} {41 {} {} {} {} {} {} {} 59 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 43 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 84 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 65 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 74 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.13.9.2 {
+ SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING) FROM t2
+} {40 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 61 {} {} {} 51 {} {} {} {} {} {} {} {} {} {} {} 22 {} {} {} {} {} 2 {} {} {} 62 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.13.9.3 {
+ SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2
+} {1 2 2 3 4 5 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.13.9.4 {
+ SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2
+} {20 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 11 21 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 12 12 22 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.13.9.5 {
+ SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING ) FROM t2
+} {40 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 61 {} {} {} 51 {} {} {} {} {} {} {} {} {} {} {} 22 {} {} {} {} {} 2 {} {} {} 62 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.13.9.6 {
+ SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 2 FOLLOWING AND 4 FOLLOWING) FROM t2
+} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
do_execsql_test 1.14.2.1 {
SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
} {99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99}
do_test 1.14.7.6 {
set myres {}
- foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] {
+ foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2}] {
lappend myres [format %.2f [set r]]
}
set myres
SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2
} {1 76 78 33 11 108 52 83 79 65 26 70 103 80 36 116 51 52 128 117 71 63 84 109 78 147 88 121 106 124 85 107 171 150 80 171 120 109 158 87 168 173 162 156 195 198 177 124 121 134 141 210 157 132 161 218 226 191 179 138 214 212 172 173 229 240 187 210 227 228 223 225 179 182 231 207 209 212 239 234 213 234 269 196 271 235 250 223 232 229 280 44 28 105 41 99 92 72 55 109 120 119 50 124 96 59 124 110 57 130 103 74 87 48 105 136 131 133 92 109 57 146 113 74 150 87 110 65 110 145 161 156 114 111 136 147 173 124 132 101 154 167 190 161 110 102 123 169 140 111 180 119 160 197 152 146 147 132 213 193 200 136 175 188 187 208 211 144 223 196 170 202 163 184 195 200 163 191 252 235 243 172 187 202 179 261 263 206 189 276 181 274 249 221 210 229 279 224 216 207}
+do_execsql_test 1.14.10.1 {
+ SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2
+} {0 81 86 81 46 98 97 23 41 72 29 13 28 35 16 47 47 9 24 26 98 58 8 24 30 91 58 2 56 29 73 2 42 46 62 62 73 40 16 85 33 37 81 25 9 87 78 87 61 28 59 77 90 74 9 27 41 22 39 67 72 54 85 74 90 7 61 90 62 4 93 72 96 94 29 23 95 74 93 30 23 29 3 1 41 80 65 33 2 98 86 89 25 76 65 40 38 15 13 96 74 97 81 40 16 99 76 96 32 80 86 59 2 99 84 84 39 65 27 76 78 84 16 2 96 59 16 41 28 13 89 22 4 42 91 41 33 87 55 81 29 36 28 6 47 97 97 85 33 41 93 15 85 89 98 98 43 23 73 4 56 29 89 46 65 38 59 68 47 9 93 9 23 39 16 93 98 74 65 75 15 56 93 12 2 81 2 23 97 47 91 15 93 35 16 63 8 53 91 33}
+
+do_execsql_test 1.14.9.2 {
+ SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2
+} {0 {} {} {} {} {} {} {} {} {} {} {} {} 90 {} {} {} {} {} {} {} 81 {} {} {} 81 21 21 {} {} {} {} 21 {} {} {} 21 12 {} 72 {} {} {} 12 {} 72 {} 12 {} {} 72 {} {} {} {} {} {} {} {} {} 23 {} {} {} {} {} 73 {} {} {} {} {} 73 {} 23 {} {} {} {} {} {} {} {} 74 {} {} {} {} {} {} {} {} 64 {} {} {} {} {} {} {} {} {} {} 55 {} {} {} {} {} {} 15 55 {} {} {} {} {} 55 {} {} {} {} 16 {} 26 26 {} {} {} {} 26 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 47 {} {} {} {} {} 47 {} {} {} {} {} 27 47 {} {} {} 98 {} {} {} {} {} 98 {} 98 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 29 {} {} {} {} {} 9 {} 29 29 {} {} {}}
+
+do_execsql_test 1.14.9.3 {
+ SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
+} {0 1 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 5 5 5 6 7 7 7 7 7 7 7 8 8 8 8 8 8 8 9 9 10 11 11 11 11 12 12 12 12 12 13 13 13 13 13 14 15 15 15 15 15 15 15 15 16 16 16 16 16 16 16 16 16 16 17 17 19 19 19 19 20 20 21 21 21 21 21 22 22 22 22 23 23 23 23 23 25 25 26 26 26 26 26 27 27 28 29 29 29 29 30 30 30 30 30 30 30 30 31 31 31 31 31 32 32 33 33 33 33 33 33 33 33 34 34 34 34 35 35 35 36 36 36 36 36 36 36 36 36 36 36 36 37 37 37 37 38 38 38 39 39 39 39 39 40 40 40 40 41 41 41 41 41 41 42 43 43 43 43 43 43 44 44 44 44 44 46 46 46 46 47 47 47 47 47 47 47 47 47 47 49 49 49}
+
+do_execsql_test 1.14.9.4 {
+ SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
+} {0 80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 1 51 51 91 91 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 2 2 62 62 62 {} {} {} {} {} {} {} {} {} {} {} 13 13 43 43 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 74 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 35 85 85 85 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 26 66 66 66 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 37 37 37 87 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 58 58 58 {} {} {} {} {} {} {} {} {} {} {} {} {} 39 39 39 89 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.14.9.5 {
+ SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
+} {0 74 32 31 84 91 74 3 93 84 74 31 12 90 31 22 74 64 43 64 64 90 74 22 43 90 1 30 62 22 31 31 30 74 64 64 1 40 33 50 11 81 42 40 13 50 81 40 13 13 50 33 52 24 41 81 34 41 34 2 30 2 81 82 53 33 10 33 33 81 34 41 10 81 30 81 4 3 3 23 94 3 61 80 84 94 3 91 91 72 3 63 30 91 94 94 72 91 73 91 84 84 33 41 1 33 84 73 73 91 20 41 84 33 33 84 33 41 84 21 44 22 90 22 81 81 74 93 93 93 81 21 83 44 44 21 21 21 13 21 21 34 11 34 73 74 2 60 2 34 2 34 74 60 23 2 2 2 11 91 60 62 73 74 70 51 65 74 93 65 70 34 70 93 93 93 62 35 44 43 12 35 41 43 44 44 41 80 54 72 43 41 43 91 12 80 80 35 33 12}
+
+do_execsql_test 1.14.9.6 {
+ SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM t2
+} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
do_execsql_test 1.15.2.1 {
SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
} {99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 95 95 84 84 84 84 84 84 84 84 83 83 83 83 83 83 83 83 83}
do_test 1.15.7.6 {
set myres {}
- foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2}] {
+ foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING) FROM t2}] {
lappend myres [format %.2f [set r]]
}
set myres
SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING) FROM t2
} {1 76 78 33 11 108 52 83 79 65 26 70 103 80 36 116 51 52 128 117 71 63 84 109 78 147 88 121 106 124 85 107 171 150 80 171 120 109 158 87 168 173 162 156 195 198 177 124 121 134 141 210 157 132 161 218 226 191 179 138 214 212 172 173 229 240 187 210 227 228 223 225 179 182 231 207 209 212 239 234 213 234 269 196 271 235 250 223 232 229 280 44 28 105 41 99 92 72 55 109 120 119 50 124 96 59 124 110 57 130 103 74 87 48 105 136 131 133 92 109 57 146 113 74 150 87 110 65 110 145 161 156 114 111 136 147 173 124 132 101 154 167 190 161 110 102 123 169 140 111 180 119 160 197 152 146 147 132 213 193 200 136 175 188 187 208 211 144 223 196 170 202 163 184 195 200 163 191 252 235 243 172 187 202 179 261 263 206 189 276 181 274 249 221 210 229 279 224 216 207}
+do_execsql_test 1.15.10.1 {
+ SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING) FROM t2
+} {0 81 86 81 46 1 67 93 26 95 80 65 56 85 30 12 81 35 89 97 31 31 85 40 96 4 73 84 9 91 73 12 5 56 24 85 49 96 75 53 61 8 8 1 55 34 43 59 80 35 15 78 35 56 70 76 59 51 75 63 26 53 5 89 15 21 5 73 33 29 74 66 12 26 58 4 12 31 35 9 87 73 55 59 53 62 73 23 62 33 90 13 90 9 10 66 5 58 44 38 58 22 33 37 2 73 36 31 72 30 47 73 15 96 70 59 90 {} 7 21 83 {} 47 90 55 36 66 {} 50 {} 84 30 {} {} 34 77 74 {} 58 {} 13 {} 82 93 69 14 62 44 {} {} 30 {} 83 93 {} {} {} 84 {} {} {} {} 14 30 82 34 34 3 {} {} {} {} {} 84 {} {} {} 99 {} {} {} {} {} {} {} 58 {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.15.9.2 {
+ SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING) FROM t2
+} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 61 {} {} {} 81 {} 91 {} {} {} {} {} {} {} {} {} 12 {} 72 {} {} {} 22 {} 82 {} 12 {} {} {} {} {} {} {} {} {} {} {} {} 43 {} {} {} {} {} 33 {} {} {} {} {} {} {} 33 {} {} {} {} {} {} {} {} 4 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 75 {} {} {} {} {} {} 15 {} {} {} {} {} {} {} {} {} {} {} 16 {} 26 36 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 37 {} {} {} {} {} 47 {} {} {} {} {} {} {} {} {} {} 98 {} {} {} {} {} 58 {} 38 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 59 {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.15.9.3 {
+ SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
+} {0 1 1 1 1 2 2 3 4 6 7 8 8 8 9 9 10 11 12 12 13 14 15 15 16 16 17 19 21 22 22 23 23 24 25 26 27 29 29 30 30 31 32 33 33 33 34 34 34 35 36 36 36 37 38 38 39 39 40 41 41 43 44 44 46 46 47 47 47 49 50 52 53 55 55 56 56 57 58 58 58 59 59 59 61 62 62 63 65 65 66 68 69 72 72 73 73 74 74 74 75 76 77 78 80 81 81 82 83 84 84 85 85 85 86 87 88 89 89 90 90 91 91 91 93 93 95 95 95 96 97 98 99 99 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.15.9.4 {
+ SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
+} {0 80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 1 51 51 91 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 2 2 62 62 72 {} {} {} {} {} {} {} {} {} {} {} 13 13 43 43 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 74 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 35 85 85 85 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 26 66 66 66 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 37 37 37 87 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 58 58 58 {} {} {} {} {} {} {} {} {} {} {} {} {} 39 39 39 89 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.15.9.5 {
+ SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING ) FROM t2
+} {0 74 32 31 84 1 14 53 3 84 44 2 93 91 32 52 34 25 33 95 65 61 35 3 74 81 2 91 33 13 23 93 12 5 46 6 82 91 44 2 73 43 84 22 95 82 63 12 75 15 93 35 85 36 33 94 77 83 7 65 43 85 64 95 46 96 33 26 36 65 17 74 74 55 33 25 47 7 47 56 7 87 55 4 58 28 47 15 95 56 7 87 55 46 58 58 26 56 17 16 99 29 7 75 16 38 99 58 98 36 15 6 {} 8 89 9 9 56 {} 97 {} 78 16 28 26 36 {} 59 39 99 27 78 {} {} {} 37 27 98 {} 88 8 {} 28 {} {} {} 49 37 29 {} 59 {} {} 47 {} 69 39 59 99 8 78 9 {} {} 58 49 {} {} {} {} 58 {} 38 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 59 {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.15.9.6 {
+ SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 PRECEDING AND UNBOUNDED FOLLOWING) FROM t2
+} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
do_execsql_test 1.16.2.1 {
SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2
} {99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 95 95 84 84 84 84 84 84 84 84 83 83 83 83 83 83 83 83 83 82 82 17 7}
do_test 1.16.7.6 {
set myres {}
- foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2}] {
+ foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) FROM t2}] {
lappend myres [format %.2f [set r]]
}
set myres
SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) FROM t2
} {1 76 78 33 11 108 52 83 79 65 26 70 103 80 36 116 51 52 128 117 71 63 84 109 78 147 88 121 106 124 85 107 171 150 80 171 120 109 158 87 168 173 162 156 195 198 177 124 121 134 141 210 157 132 161 218 226 191 179 138 214 212 172 173 229 240 187 210 227 228 223 225 179 182 231 207 209 212 239 234 213 234 269 196 271 235 250 223 232 229 280 44 28 105 41 99 92 72 55 109 120 119 50 124 96 59 124 110 57 130 103 74 87 48 105 136 131 133 92 109 57 146 113 74 150 87 110 65 110 145 161 156 114 111 136 147 173 124 132 101 154 167 190 161 110 102 123 169 140 111 180 119 160 197 152 146 147 132 213 193 200 136 175 188 187 208 211 144 223 196 170 202 163 184 195 200 163 191 252 235 243 172 187 202 179 261 263 206 189 276 181 274 249 221 210 229 279 224 216 207}
+do_execsql_test 1.16.10.1 {
+ SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) FROM t2
+} {0 4 61 42 8 35 77 7 81 96 9 11 89 32 53 91 30 51 56 54 73 22 59 75 74 78 8 16 65 15 8 31 87 90 12 32 96 74 76 37 85 90 15 35 2 60 36 75 9 51 47 63 51 90 26 42 26 8 76 80 90 37 87 56 79 5 87 8 2 39 73 64 36 90 72 78 36 73 51 33 20 41 2 26 37 33 8 14 33 81 55 1 9 12 39 64 87 72 34 82 21 34 99 62 74 41 69 22 75 27 58 8 79 77 26 26 55 {} 29 30 7 {} 66 55 2 34 64 {} 33 {} 44 84 {} {} 95 85 19 {} 83 {} 91 {} {} 9 50 91 33 34 {} {} 84 {} 7 9 {} {} {} 44 {} {} {} {} 91 84 {} 95 95 52 {} {} {} {} {} 21 {} {} {} 58 {} {} {} {} {} {} {} 83 {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.16.9.2 {
+ SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) FROM t2
+} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 81 {} {} {} 21 {} {} {} {} {} {} {} {} {} {} {} 12 {} 62 {} {} {} 12 {} {} {} 72 {} {} {} {} {} {} {} {} {} {} {} {} 53 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 95 {} {} {} {} {} {} 85 {} {} {} {} {} {} {} {} {} {} {} 56 {} 36 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 57 {} {} {} {} {} 7 {} {} {} {} {} {} {} {} {} {} 8 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.16.9.3 {
+ SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2
+} {0 1 2 2 3 3 5 6 7 8 8 9 9 10 11 12 12 13 13 14 15 16 16 17 19 20 21 22 23 23 24 25 26 26 27 28 29 30 31 31 33 33 33 33 34 34 35 36 36 36 37 37 38 39 39 40 41 41 42 43 44 46 47 47 47 47 49 51 52 53 54 55 56 56 57 58 58 58 59 59 59 61 61 62 63 65 65 65 67 69 70 72 72 73 74 74 74 74 75 76 77 78 80 81 81 83 84 84 84 85 85 87 87 88 89 89 90 90 90 91 91 91 93 93 95 95 96 96 97 98 99 99 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.16.9.4 {
+ SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2
+} {0 80 {} {} {} {} {} {} {} {} {} {} {} {} {} 1 11 61 81 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 2 12 12 72 82 {} {} {} {} {} {} {} {} {} {} {} {} 13 23 63 73 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 34 74 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 35 85 85 95 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 26 76 86 96 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 37 47 47 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 58 58 68 {} {} {} {} {} {} {} {} {} {} {} {} {} 39 49 59 99 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.16.9.5 {
+ SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING ) FROM t2
+} {0 64 42 81 94 1 44 73 74 44 85 22 33 41 72 93 34 65 54 5 15 81 15 63 84 21 2 62 54 93 43 33 2 75 16 86 23 12 85 62 13 53 94 12 75 23 73 72 96 46 33 55 25 26 74 34 87 84 87 55 53 25 84 75 56 66 54 36 97 55 78 84 84 95 74 65 17 87 77 96 8 47 95 34 89 98 7 46 6 96 8 47 95 56 89 59 36 36 78 96 89 29 37 95 56 39 {} 8 58 67 85 86 {} 58 49 {} 29 76 {} 77 {} 78 56 98 36 97 {} 59 89 89 47 78 {} {} {} 38 68 58 {} 58 38 {} 98 {} {} {} 19 57 9 {} 9 {} {} 7 {} {} {} 39 89 38 78 39 {} {} 8 19 {} {} {} {} 89 {} 39 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 9 {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.16.9.6 {
+ SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) FROM t2
+} {0 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
do_execsql_test 1.17.2.1 {
SELECT max(b) OVER ( ORDER BY a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2
} {99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 95 95 84 84 84 84 84 84 84 84 83 83 83 83 83 83 83 83 83 82 82 17 7 {} {} {} {}}
do_test 1.17.7.6 {
set myres {}
- foreach r [db eval {SELECT percent_rank() OVER ( PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2}] {
+ foreach r [db eval {SELECT percent_rank() OVER (PARTITION BY b%2 ORDER BY b%10 ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING) FROM t2}] {
lappend myres [format %.2f [set r]]
}
set myres
SELECT last_value(a+b) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING) FROM t2
} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+do_execsql_test 1.17.10.1 {
+ SELECT nth_value(b,b+1) OVER (ORDER BY a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING) FROM t2
+} {23 78 85 29 84 51 93 91 68 74 65 12 4 22 37 15 53 8 16 29 8 34 3 76 73 63 90 47 98 47 90 73 20 89 91 22 77 73 42 41 32 55 79 51 74 44 81 7 65 8 43 80 8 89 90 29 36 15 42 9 9 41 20 16 11 87 20 90 84 80 41 37 34 9 75 63 34 8 8 81 95 31 74 36 41 99 90 91 99 13 2 35 33 36 38 37 20 75 17 {} 5 34 58 33 19 31 50 34 23 {} 72 90 11 85 90 36 2 {} 39 27 {} {} 64 2 74 95 37 {} 58 {} 34 44 {} {} 30 70 47 {} 7 {} 15 {} {} 12 33 36 99 17 {} {} 44 {} {} 12 {} {} {} 34 {} {} {} {} 36 44 {} 30 30 10 {} {} {} {} {} 30 {} {} {} 84 {} {} {} {} {} {} {} 7 {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.17.9.2 {
+ SELECT nth_value(b,b+1) OVER (PARTITION BY b%10 ORDER BY a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING) FROM t2
+} {80 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 21 {} {} {} 31 {} {} {} {} {} {} {} {} {} {} {} 2 {} {} {} {} {} 72 {} {} {} 82 {} {} {} {} {} {} {} {} {} {} {} {} 73 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 64 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 76 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 27 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 38 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.17.9.3 {
+ SELECT nth_value(b,b+1) OVER ( ORDER BY b,a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2
+} {2 3 3 5 6 7 7 8 8 9 10 11 12 12 13 13 14 15 15 16 16 19 20 21 22 22 23 23 25 26 26 27 28 29 29 30 31 32 33 33 33 34 34 34 35 36 36 37 37 38 39 39 40 41 41 42 43 44 44 46 47 47 49 50 51 52 53 55 55 56 56 57 58 58 58 59 59 59 60 61 62 63 64 65 65 67 68 69 72 72 73 73 74 74 74 75 75 76 77 78 80 81 81 83 84 84 85 85 86 87 88 89 89 90 90 91 91 91 91 93 93 94 95 95 96 97 98 98 99 99 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.17.9.4 {
+ SELECT nth_value(b,b+1) OVER ( PARTITION BY b%10 ORDER BY b,a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2
+} {30 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 21 31 91 91 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 22 22 32 {} {} {} {} {} {} {} {} {} {} {} {} {} {} 33 33 83 93 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 44 84 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 65 95 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 36 96 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 47 57 67 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} 78 88 98 {} {} {} {} {} {} {} {} {} {} {} {} {} 59 59 69 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.17.9.5 {
+ SELECT nth_value(b,b+1) OVER ( ORDER BY b%10,a ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING ) FROM t2
+} {80 84 22 2 34 41 85 23 24 34 25 12 13 11 72 3 85 95 4 75 85 21 65 73 44 31 62 42 4 3 73 13 2 95 56 16 43 2 25 33 83 73 34 72 96 43 13 82 16 16 13 15 65 36 74 14 7 94 47 95 73 65 35 96 36 27 4 67 77 95 78 65 44 5 74 95 78 47 47 36 58 17 5 64 29 58 8 16 86 36 58 17 5 36 29 59 67 26 78 66 49 59 38 6 96 89 {} 38 99 47 26 16 {} 8 19 {} 9 26 {} 87 {} 88 76 58 67 77 {} 9 79 49 37 88 {} {} {} 28 98 99 {} 59 39 {} 58 {} {} {} 99 27 39 {} 29 {} {} 8 {} {} {} 69 49 39 88 {} {} {} 38 99 {} {} {} {} 29 {} 89 {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
+do_execsql_test 1.17.9.6 {
+ SELECT nth_value(b,b+1) OVER (PARTITION BY b%2,a ORDER BY b%10 ROWS BETWEEN 4 FOLLOWING AND UNBOUNDED FOLLOWING) FROM t2
+} {{} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {}}
+
finish_test