@@ -414,4 +414,40 @@ public function testBuilderSelectAllFormsOfIndexHints(): void
414
414
415
415
self ::assertSame ($ query , $ stmt ->build ());
416
416
}
417
+
418
+ public function testBuilderSelectRowNumberOverAlias (): void
419
+ {
420
+ $ query = 'SELECT id, pid, appid, appname, row_number() over (partition by pid, appid) as `group_row_number` '
421
+ . ' FROM game group by appname ' ;
422
+ $ expected = 'SELECT id, pid, appid, appname, row_number() over (partition by pid, appid) AS `group_row_number` '
423
+ . ' FROM game GROUP BY appname ' ;
424
+
425
+ $ parser = new Parser ($ query );
426
+ $ stmt = $ parser ->statements [0 ];
427
+
428
+ self ::assertSame ($ expected , $ stmt ->build ());
429
+ }
430
+
431
+ public function testBuilderSelectWindowFunctions (): void
432
+ {
433
+ $ queryVsExpected = [
434
+ 'SELECT row_number() over (ORDER BY NULL) x ' => 'SELECT row_number() over (ORDER BY NULL) AS `x` ' ,
435
+ 'SELECT rank() over (ORDER BY NULL) x ' => 'SELECT rank() over (ORDER BY NULL) AS `x` ' ,
436
+ 'SELECT dense_rank() over (ORDER BY NULL) x ' => 'SELECT dense_rank() over (ORDER BY NULL) AS `x` ' ,
437
+ 'SELECT cume_dist() over (ORDER BY NULL) x ' => 'SELECT cume_dist() over (ORDER BY NULL) AS `x` ' ,
438
+ 'SELECT ntile(3) over (ORDER BY NULL) x ' => 'SELECT ntile(3) over (ORDER BY NULL) AS `x` ' ,
439
+ 'SELECT ROW_NUMBER() OVER(ORDER BY NULL) x ' => 'SELECT ROW_NUMBER() OVER(ORDER BY NULL) AS `x` ' ,
440
+ 'SELECT RANK()OVER(ORDER BY NULL) x ' => 'SELECT RANK()OVER(ORDER BY NULL) AS `x` ' ,
441
+ 'SELECT DENSE_RANK()OVER(ORDER BY NULL) x ' => 'SELECT DENSE_RANK()OVER(ORDER BY NULL) AS `x` ' ,
442
+ 'SELECT CUME_DIST()OVER(ORDER BY NULL) x ' => 'SELECT CUME_DIST()OVER(ORDER BY NULL) AS `x` ' ,
443
+ 'SELECT NTILE(3)OVER(ORDER BY NULL) x ' => 'SELECT NTILE(3)OVER(ORDER BY NULL) AS `x` ' ,
444
+ ];
445
+
446
+ foreach ($ queryVsExpected as $ query => $ expected ) {
447
+ $ parser = new Parser ($ query );
448
+ $ stmt = $ parser ->statements [0 ];
449
+
450
+ self ::assertSame ($ expected , $ stmt ->build ());
451
+ }
452
+ }
417
453
}
0 commit comments