Hi,

试试用这种方式呢:count(1) filter (where name like '南京%')

anonnius <anonn...@126.com> 于2020年9月27日周日 下午5:29写道:

> select count(nullif(if(name not like '南京%', '其他', '南京'), '其他'))
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> 在 2020-09-27 17:23:07,"zya" <z_yu...@foxmail.com> 写道:
> >你好,链接无法显示,能麻烦再贴下吗
> >
> >
> >------------------&nbsp;原始邮件&nbsp;------------------
> >发件人:
>                                                   "user-zh"
>                                                                     <
> anonn...@126.com&gt;;
> >发送时间:&nbsp;2020年9月27日(星期天) 下午5:20
> >收件人:&nbsp;"user-zh"<user-zh@flink.apache.org&gt;;
> >
> >主题:&nbsp;Re:回复:flink sql count问题
> >
> >
> >
> >hi:<br/&gt;这种方法看下能否满足<br/&gt;select count(nullif(if(name not like '南京%',
> '其他', '南京'), '其他'))
> >在 2020-09-27 17:07:39,"zya" <z_yu...@foxmail.com&gt; 写道:
> >&gt;貌似只能这样了,感谢回答
> >&gt;
> >&gt;
> >&gt;
> >&gt;
> >&gt;------------------&amp;nbsp;原始邮件&amp;nbsp;------------------
> >&gt;发件人:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
> "user-zh"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
> <greemqq...@163.com&amp;gt;;
> >&gt;发送时间:&amp;nbsp;2020年9月27日(星期天) 下午5:03
> >&gt;收件人:&amp;nbsp;"user-zh"<user-zh@flink.apache.org&amp;gt;;
> >&gt;
> >&gt;主题:&amp;nbsp;Re:回复:flink sql count问题
> >&gt;
> >&gt;
> >&gt;
> >&gt;你count 也会生成记录啊。 你过滤掉就行&amp;nbsp;&amp;nbsp; 。 比如 having xxx&amp;nbsp;
> ,或者加个filter
> >&gt;在 2020-09-27 17:01:06,"zya" <z_yu...@foxmail.com&amp;gt; 写道:
> >&gt;&amp;gt;这个是我现在的做法,但是的问题就是使用sum会在条件没满足时也会在mysql中生成一条记录
> >&gt;&amp;gt;&amp;amp;nbsp;
> >&gt;&amp;gt;
> >&gt;&amp;gt;
> >&gt;&amp;gt;
> >&gt;&amp;gt;
>
> >&gt;&amp;gt;------------------&amp;amp;nbsp;原始邮件&amp;amp;nbsp;------------------
> >&gt;&amp;gt;发件人:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
> "user-zh"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
> <greemqq...@163.com&amp;amp;gt;;
> >&gt;&amp;gt;发送时间:&amp;amp;nbsp;2020年9月27日(星期天) 下午4:59
> >&gt;&amp;gt;收件人:&amp;amp;nbsp;"user-zh"<user-zh@flink.apache.org
> &amp;amp;gt;;
> >&gt;&amp;gt;
> >&gt;&amp;gt;主题:&amp;amp;nbsp;Re:flink sql count问题
> >&gt;&amp;gt;
> >&gt;&amp;gt;
> >&gt;&amp;gt;
> >&gt;&amp;gt;最好把null 变成0,&amp;amp;nbsp; 你这样&amp;amp;nbsp;&amp;amp;nbsp;
> sum(if(name like '南京%',1 , 0))
> >&gt;&amp;gt;在 2020-09-27 16:53:56,"zya" <z_yu...@foxmail.com&amp;amp;gt;
> 写道:
> >&gt;&amp;gt;&amp;amp;gt;请教各位:
> >&gt;&amp;gt;&amp;amp;gt;我有一个sql任务需要进行count,在count中有一个表达式,只想count符合条件的记录,
> >&gt;&amp;gt;&amp;amp;gt;之前在hive中是这么写的:count(if(name like '南京%',1 ,
> null)),但是flink sql中count不能为null,有什么别的方法能实现该功能吗?
> >&gt;&amp;gt;&amp;amp;gt;使用的是flink1.10.1 blink
> >&gt;&amp;gt;&amp;amp;gt;&amp;amp;amp;nbsp;
>


-- 

Best,
Benchao Li

回复