@@ -726,9 +726,9 @@ var QueryTests = []QueryTest{
726
726
Query : `select mt.i,
727
727
((
728
728
select count(*) from mytable
729
- where i in (
730
- select mt2.i from mytable mt2 where mt2.i > mt.i
731
- )
729
+ where i in (
730
+ select mt2.i from mytable mt2 where mt2.i > mt.i
731
+ )
732
732
)) as greater_count
733
733
from mytable mt order by 1` ,
734
734
Expected : []sql.Row {{1 , 2 }, {2 , 1 }, {3 , 0 }},
@@ -737,9 +737,9 @@ var QueryTests = []QueryTest{
737
737
Query : `select mt.i,
738
738
((
739
739
select count(*) from mytable
740
- where i in (
741
- select mt2.i from mytable mt2 where mt2.i = mt.i
742
- )
740
+ where i in (
741
+ select mt2.i from mytable mt2 where mt2.i = mt.i
742
+ )
743
743
)) as eq_count
744
744
from mytable mt order by 1` ,
745
745
Expected : []sql.Row {{1 , 1 }, {2 , 1 }, {3 , 1 }},
@@ -2755,6 +2755,42 @@ var QueryTests = []QueryTest{
2755
2755
{1 , 3 },
2756
2756
},
2757
2757
},
2758
+ {
2759
+ Query : `select pk,
2760
+ row_number() over (order by pk desc),
2761
+ sum(v1) over (partition by v2 order by pk),
2762
+ percent_rank() over(partition by v2 order by pk)
2763
+ from one_pk_three_idx order by pk` ,
2764
+ Expected : []sql.Row {
2765
+ {0 , 8 , float64 (0 ), float64 (0 )},
2766
+ {1 , 7 , float64 (0 ), float64 (1 ) / float64 (3 )},
2767
+ {2 , 6 , float64 (0 ), float64 (0 )},
2768
+ {3 , 5 , float64 (0 ), float64 (0 )},
2769
+ {4 , 4 , float64 (1 ), float64 (2 ) / float64 (3 )},
2770
+ {5 , 3 , float64 (3 ), float64 (1 )},
2771
+ {6 , 2 , float64 (3 ), float64 (0 )},
2772
+ {7 , 1 , float64 (4 ), float64 (0 )},
2773
+ },
2774
+ },
2775
+ {
2776
+ Query : `select pk,
2777
+ first_value(pk) over (order by pk desc),
2778
+ lag(pk, 1) over (order by pk desc),
2779
+ count(pk) over(partition by v1 order by pk),
2780
+ max(pk) over(partition by v1 order by pk desc),
2781
+ avg(v2) over (partition by v1 order by pk)
2782
+ from one_pk_three_idx order by pk` ,
2783
+ Expected : []sql.Row {
2784
+ {0 , 7 , 1 , 1 , 3 , float64 (0 )},
2785
+ {1 , 7 , 2 , 2 , 3 , float64 (0 )},
2786
+ {2 , 7 , 3 , 3 , 3 , float64 (1 ) / float64 (3 )},
2787
+ {3 , 7 , 4 , 4 , 3 , float64 (3 ) / float64 (4 )},
2788
+ {4 , 7 , 5 , 1 , 4 , float64 (0 )},
2789
+ {5 , 7 , 6 , 1 , 5 , float64 (0 )},
2790
+ {6 , 7 , 7 , 1 , 6 , float64 (3 )},
2791
+ {7 , 7 , nil , 1 , 7 , float64 (4 )},
2792
+ },
2793
+ },
2758
2794
{
2759
2795
Query : "SELECT t1.i FROM mytable t1 JOIN mytable t2 on t1.i = t2.i + 1 where t1.i = 2 and t2.i = 3" ,
2760
2796
Expected : []sql.Row {},
@@ -5720,7 +5756,7 @@ var QueryTests = []QueryTest{
5720
5756
},
5721
5757
},
5722
5758
{
5723
- Query : `select i, row_number() over (order by i desc),
5759
+ Query : `select i, row_number() over (order by i desc),
5724
5760
row_number() over (order by length(s),i) from mytable order by 1;` ,
5725
5761
Expected : []sql.Row {
5726
5762
{1 , 3 , 1 },
@@ -5743,7 +5779,7 @@ var QueryTests = []QueryTest{
5743
5779
},
5744
5780
},
5745
5781
{
5746
- Query : `select row_number() over (order by i desc),
5782
+ Query : `select row_number() over (order by i desc),
5747
5783
row_number() over (order by length(s),i) from mytable order by i;` ,
5748
5784
Expected : []sql.Row {
5749
5785
{3 , 1 },
@@ -5752,7 +5788,7 @@ var QueryTests = []QueryTest{
5752
5788
},
5753
5789
},
5754
5790
{
5755
- Query : `select *, row_number() over (order by i desc),
5791
+ Query : `select *, row_number() over (order by i desc),
5756
5792
row_number() over (order by length(s),i) from mytable order by i;` ,
5757
5793
Expected : []sql.Row {
5758
5794
{1 , "first row" , 3 , 1 },
@@ -5761,10 +5797,10 @@ var QueryTests = []QueryTest{
5761
5797
},
5762
5798
},
5763
5799
{
5764
- Query : `select row_number() over (order by i desc),
5765
- row_number() over (order by length(s),i)
5766
- from mytable mt join othertable ot
5767
- on mt.i = ot.i2
5800
+ Query : `select row_number() over (order by i desc),
5801
+ row_number() over (order by length(s),i)
5802
+ from mytable mt join othertable ot
5803
+ on mt.i = ot.i2
5768
5804
order by mt.i;` ,
5769
5805
Expected : []sql.Row {
5770
5806
{3 , 1 },
@@ -5773,7 +5809,7 @@ var QueryTests = []QueryTest{
5773
5809
},
5774
5810
},
5775
5811
{
5776
- Query : `select i, row_number() over (order by i desc),
5812
+ Query : `select i, row_number() over (order by i desc),
5777
5813
row_number() over (order by length(s),i) from mytable order by 1 desc;` ,
5778
5814
Expected : []sql.Row {
5779
5815
{3 , 1 , 2 },
@@ -5792,8 +5828,8 @@ var QueryTests = []QueryTest{
5792
5828
},
5793
5829
{
5794
5830
Query : `select i, row_number() over (order by i desc) + 3,
5795
- row_number() over (order by length(s),i) as s_asc,
5796
- row_number() over (order by length(s) desc,i desc) as s_desc
5831
+ row_number() over (order by length(s),i) as s_asc,
5832
+ row_number() over (order by length(s) desc,i desc) as s_desc
5797
5833
from mytable order by 1;` ,
5798
5834
Expected : []sql.Row {
5799
5835
{1 , 6 , 1 , 3 },
@@ -5803,7 +5839,7 @@ var QueryTests = []QueryTest{
5803
5839
},
5804
5840
{
5805
5841
Query : `select i, row_number() over (order by i desc) + 3,
5806
- row_number() over (order by length(s),i) + 0.0 / row_number() over (order by length(s) desc,i desc) + 0.0
5842
+ row_number() over (order by length(s),i) + 0.0 / row_number() over (order by length(s) desc,i desc) + 0.0
5807
5843
from mytable order by 1;` ,
5808
5844
Expected : []sql.Row {
5809
5845
{1 , 6 , 1.0 },
@@ -5821,8 +5857,8 @@ var QueryTests = []QueryTest{
5821
5857
},
5822
5858
},
5823
5859
{
5824
- Query : `select pk1, pk2,
5825
- row_number() over (partition by pk1 order by c1 desc)
5860
+ Query : `select pk1, pk2,
5861
+ row_number() over (partition by pk1 order by c1 desc)
5826
5862
from two_pk order by 1,2;` ,
5827
5863
Expected : []sql.Row {
5828
5864
{0 , 0 , 2 },
@@ -5832,8 +5868,8 @@ var QueryTests = []QueryTest{
5832
5868
},
5833
5869
},
5834
5870
{
5835
- Query : `select pk1, pk2,
5836
- row_number() over (partition by pk1 order by c1 desc),
5871
+ Query : `select pk1, pk2,
5872
+ row_number() over (partition by pk1 order by c1 desc),
5837
5873
row_number() over (partition by pk2 order by 10 - c1)
5838
5874
from two_pk order by 1,2;` ,
5839
5875
Expected : []sql.Row {
@@ -5844,8 +5880,8 @@ var QueryTests = []QueryTest{
5844
5880
},
5845
5881
},
5846
5882
{
5847
- Query : `select pk1, pk2,
5848
- row_number() over (partition by pk1 order by c1 desc),
5883
+ Query : `select pk1, pk2,
5884
+ row_number() over (partition by pk1 order by c1 desc),
5849
5885
row_number() over (partition by pk2 order by 10 - c1),
5850
5886
max(c4) over ()
5851
5887
from two_pk order by 1,2;` ,
@@ -5856,6 +5892,58 @@ var QueryTests = []QueryTest{
5856
5892
{1 , 1 , 1 , 1 , 33 },
5857
5893
},
5858
5894
},
5895
+ {
5896
+ Query : "SELECT pk, row_number() over (partition by v2 order by pk ), max(v3) over (partition by v2 order by pk) FROM one_pk_three_idx ORDER BY pk" ,
5897
+ Expected : []sql.Row {
5898
+ {0 , 1 , 3 },
5899
+ {1 , 2 , 3 },
5900
+ {2 , 1 , 0 },
5901
+ {3 , 1 , 2 },
5902
+ {4 , 3 , 3 },
5903
+ {5 , 4 , 3 },
5904
+ {6 , 1 , 0 },
5905
+ {7 , 1 , 4 },
5906
+ },
5907
+ },
5908
+ {
5909
+ Query : "SELECT pk, count(*) over (order by v2) FROM one_pk_three_idx ORDER BY pk" ,
5910
+ Expected : []sql.Row {
5911
+ {0 , 4 },
5912
+ {1 , 4 },
5913
+ {2 , 5 },
5914
+ {3 , 6 },
5915
+ {4 , 4 },
5916
+ {5 , 4 },
5917
+ {6 , 7 },
5918
+ {7 , 8 },
5919
+ },
5920
+ },
5921
+ {
5922
+ Query : "SELECT pk, count(*) over (partition by v2) FROM one_pk_three_idx ORDER BY pk" ,
5923
+ Expected : []sql.Row {
5924
+ {0 , 4 },
5925
+ {1 , 4 },
5926
+ {2 , 1 },
5927
+ {3 , 1 },
5928
+ {4 , 4 },
5929
+ {5 , 4 },
5930
+ {6 , 1 },
5931
+ {7 , 1 },
5932
+ },
5933
+ },
5934
+ {
5935
+ Query : "SELECT pk, row_number() over (order by v2, pk), max(pk) over () from one_pk_three_idx ORDER BY pk" ,
5936
+ Expected : []sql.Row {
5937
+ {0 , 1 , 7 },
5938
+ {1 , 2 , 7 },
5939
+ {2 , 5 , 7 },
5940
+ {3 , 6 , 7 },
5941
+ {4 , 3 , 7 },
5942
+ {5 , 4 , 7 },
5943
+ {6 , 7 , 7 },
5944
+ {7 , 8 , 7 },
5945
+ },
5946
+ },
5859
5947
{
5860
5948
Query : `select i,
5861
5949
row_number() over (partition by case when i > 2 then "under two" else "over two" end order by i desc) as s_asc
0 commit comments