The query is not valid. (Try on other databases; they will tell you the same 
thing. Except that MySQL might do something dumb.)

Suppose you have two records with aser = 1, one which occurs at record 100, the 
other at record 1 million. The first record will sum amount over rows 90..100, 
the second over rows 999,990..1,000,000. We need to include one total row in 
the output for for aser = 1. Which is the right rolling sum to include in the 
total? The answer is that it isn’t well-defined, therefore the query is not 
valid.

> On Jan 13, 2017, at 5:52 PM, Hongyuhong <[email protected]> wrote:
> 
> Hi,
> I have a SQL like
> "select aser, sum(amount) over (rows 10 preceding)  FROM  OrderA group by 
> aser"
> And it will fail with an error Expression 'amount' is not being grouped,
> But the attr 'amount' should not need to beging grouped, is that not support 
> now?
> 
> And I saw if I have no groupby it will generate LogicalProject, else it will 
> be LogicalAggregate.
> Cause I need a window relnode, if project I can use the ProjectToWindowRule, 
> but with aggregate relnode,
> It seems difficult to get the window, Is there any method ?
> 
> Thanks very much.
> 
> Best,
> Yuhong

Reply via email to