Hi,

FILTER是SQL标准里的语法,可以参考[1]
FLINK SQL是支持该语法的,类似的例子官网文档可以参考 [2]中最后的例子

Best,
Leonard Xu

[1] https://modern-sql.com/feature/filter 
<https://modern-sql.com/feature/filter>
[2]https://ci.apache.org/projects/flink/flink-docs-master/zh/dev/table/tuning/streaming_aggregation_optimization.html
 
<https://ci.apache.org/projects/flink/flink-docs-master/zh/dev/table/tuning/streaming_aggregation_optimization.html>
> 在 2020年4月27日,05:51,王双利 <all...@163.com> 写道:
> 
> 没找到 filter这个语法
> 
> 
> 
> 王双利
> 
> 发件人: Jark Wu
> 发送时间: 2020-04-26 23:50
> 收件人: user-zh
> 主题: Re: sql 行转列
> Hi
> 
> 如果我理解的没错,agg with filter 语法能满足你的需求。
> 
> select ip,
>  sum(t) filter (where status = 'success')
>  sum(t) filter (where status = 'fail')
> from view1
> group by ip
> 
> Best,
> Jark
> 
> On Sun, 26 Apr 2020 at 20:56, Leonard Xu <xbjt...@gmail.com> wrote:
> 
>> Hi,
>> 
>>> select ip,
>>> case status when 'success' THEN sum(t) ELSE 0 end successct,
>>> case status when 'fail' THEN sum(t) ELSE 0 end failct
>>> from view1
>>> group by ip
>> 
>> 这个 sql 应该ok的,看讨论也可以满足你的需求,是有报错吗?麻烦贴下报错和 view1的大致逻辑
>> 
>> Best,
>> Leonard Xu

回复