请教各位:
我有一个sql任务需要进行count,在count中有一个表达式,只想count符合条件的记录, 之前在hive中是这么写的:count(if(name like '南京%',1 , null)),但是flink sql中count不能为null,有什么别的方法能实现该功能吗? 使用的是flink1.10.1 blink |
最好把null 变成0, 你这样 sum(if(name like '南京%',1 , 0))
在 2020-09-27 16:53:56,"zya" <[hidden email]> 写道: >请教各位: >我有一个sql任务需要进行count,在count中有一个表达式,只想count符合条件的记录, >之前在hive中是这么写的:count(if(name like '南京%',1 , null)),但是flink sql中count不能为null,有什么别的方法能实现该功能吗? >使用的是flink1.10.1 blink > |
这个是我现在的做法,但是的问题就是使用sum会在条件没满足时也会在mysql中生成一条记录
------------------ 原始邮件 ------------------ 发件人: "user-zh" <[hidden email]>; 发送时间: 2020年9月27日(星期天) 下午4:59 收件人: "user-zh"<[hidden email]>; 主题: Re:flink sql count问题 最好把null 变成0, 你这样 sum(if(name like '南京%',1 , 0)) 在 2020-09-27 16:53:56,"zya" <[hidden email]> 写道: >请教各位: >我有一个sql任务需要进行count,在count中有一个表达式,只想count符合条件的记录, >之前在hive中是这么写的:count(if(name like '南京%',1 , null)),但是flink sql中count不能为null,有什么别的方法能实现该功能吗? >使用的是flink1.10.1 blink >&nbsp; |
你count 也会生成记录啊。 你过滤掉就行 。 比如 having xxx ,或者加个filter
在 2020-09-27 17:01:06,"zya" <[hidden email]> 写道: >这个是我现在的做法,但是的问题就是使用sum会在条件没满足时也会在mysql中生成一条记录 > > > > > >------------------ 原始邮件 ------------------ >发件人: "user-zh" <[hidden email]>; >发送时间: 2020年9月27日(星期天) 下午4:59 >收件人: "user-zh"<[hidden email]>; > >主题: Re:flink sql count问题 > > > >最好把null 变成0, 你这样 sum(if(name like '南京%',1 , 0)) >在 2020-09-27 16:53:56,"zya" <[hidden email]> 写道: >>请教各位: >>我有一个sql任务需要进行count,在count中有一个表达式,只想count符合条件的记录, >>之前在hive中是这么写的:count(if(name like '南京%',1 , null)),但是flink sql中count不能为null,有什么别的方法能实现该功能吗? >>使用的是flink1.10.1 blink >>&nbsp; |
貌似只能这样了,感谢回答
------------------ 原始邮件 ------------------ 发件人: "user-zh" <[hidden email]>; 发送时间: 2020年9月27日(星期天) 下午5:03 收件人: "user-zh"<[hidden email]>; 主题: Re:回复:flink sql count问题 你count 也会生成记录啊。 你过滤掉就行 。 比如 having xxx ,或者加个filter 在 2020-09-27 17:01:06,"zya" <[hidden email]> 写道: >这个是我现在的做法,但是的问题就是使用sum会在条件没满足时也会在mysql中生成一条记录 >&nbsp; > > > > >------------------&nbsp;原始邮件&nbsp;------------------ >发件人: "user-zh" <[hidden email]&gt;; >发送时间:&nbsp;2020年9月27日(星期天) 下午4:59 >收件人:&nbsp;"user-zh"<[hidden email]&gt;; > >主题:&nbsp;Re:flink sql count问题 > > > >最好把null 变成0,&nbsp; 你这样&nbsp;&nbsp; sum(if(name like '南京%',1 , 0)) >在 2020-09-27 16:53:56,"zya" <[hidden email]&gt; 写道: >&gt;请教各位: >&gt;我有一个sql任务需要进行count,在count中有一个表达式,只想count符合条件的记录, >&gt;之前在hive中是这么写的:count(if(name like '南京%',1 , null)),但是flink sql中count不能为null,有什么别的方法能实现该功能吗? >&gt;使用的是flink1.10.1 blink >&gt;&amp;nbsp; |
hi:<br/>这种方法看下能否满足<br/>select count(nullif(if(name not like '南京%', '其他', '南京'), '其他'))
在 2020-09-27 17:07:39,"zya" <[hidden email]> 写道: >貌似只能这样了,感谢回答 > > > > >------------------ 原始邮件 ------------------ >发件人: "user-zh" <[hidden email]>; >发送时间: 2020年9月27日(星期天) 下午5:03 >收件人: "user-zh"<[hidden email]>; > >主题: Re:回复:flink sql count问题 > > > >你count 也会生成记录啊。 你过滤掉就行 。 比如 having xxx ,或者加个filter >在 2020-09-27 17:01:06,"zya" <[hidden email]> 写道: >>这个是我现在的做法,但是的问题就是使用sum会在条件没满足时也会在mysql中生成一条记录 >>&nbsp; >> >> >> >> >>------------------&nbsp;原始邮件&nbsp;------------------ >>发件人: "user-zh" <[hidden email]&gt;; >>发送时间:&nbsp;2020年9月27日(星期天) 下午4:59 >>收件人:&nbsp;"user-zh"<[hidden email]&gt;; >> >>主题:&nbsp;Re:flink sql count问题 >> >> >> >>最好把null 变成0,&nbsp; 你这样&nbsp;&nbsp; sum(if(name like '南京%',1 , 0)) >>在 2020-09-27 16:53:56,"zya" <[hidden email]&gt; 写道: >>&gt;请教各位: >>&gt;我有一个sql任务需要进行count,在count中有一个表达式,只想count符合条件的记录, >>&gt;之前在hive中是这么写的:count(if(name like '南京%',1 , null)),但是flink sql中count不能为null,有什么别的方法能实现该功能吗? >>&gt;使用的是flink1.10.1 blink >>&gt;&amp;nbsp; |
你好,链接无法显示,能麻烦再贴下吗
------------------ 原始邮件 ------------------ 发件人: "user-zh" <[hidden email]>; 发送时间: 2020年9月27日(星期天) 下午5:20 收件人: "user-zh"<[hidden email]>; 主题: Re:回复:flink sql count问题 hi:<br/>这种方法看下能否满足<br/>select count(nullif(if(name not like '南京%', '其他', '南京'), '其他')) 在 2020-09-27 17:07:39,"zya" <[hidden email]> 写道: >貌似只能这样了,感谢回答 > > > > >------------------&nbsp;原始邮件&nbsp;------------------ >发件人: "user-zh" <[hidden email]&gt;; >发送时间:&nbsp;2020年9月27日(星期天) 下午5:03 >收件人:&nbsp;"user-zh"<[hidden email]&gt;; > >主题:&nbsp;Re:回复:flink sql count问题 > > > >你count 也会生成记录啊。 你过滤掉就行&nbsp;&nbsp; 。 比如 having xxx&nbsp; ,或者加个filter >在 2020-09-27 17:01:06,"zya" <[hidden email]&gt; 写道: >&gt;这个是我现在的做法,但是的问题就是使用sum会在条件没满足时也会在mysql中生成一条记录 >&gt;&amp;nbsp; >&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; <[hidden email]&amp;gt;; >&gt;发送时间:&amp;nbsp;2020年9月27日(星期天) 下午4:59 >&gt;收件人:&amp;nbsp;"user-zh"<[hidden email]&amp;gt;; >&gt; >&gt;主题:&amp;nbsp;Re:flink sql count问题 >&gt; >&gt; >&gt; >&gt;最好把null 变成0,&amp;nbsp; 你这样&amp;nbsp;&amp;nbsp; sum(if(name like '南京%',1 , 0)) >&gt;在 2020-09-27 16:53:56,"zya" <[hidden email]&amp;gt; 写道: >&gt;&amp;gt;请教各位: >&gt;&amp;gt;我有一个sql任务需要进行count,在count中有一个表达式,只想count符合条件的记录, >&gt;&amp;gt;之前在hive中是这么写的:count(if(name like '南京%',1 , null)),但是flink sql中count不能为null,有什么别的方法能实现该功能吗? >&gt;&amp;gt;使用的是flink1.10.1 blink >&gt;&amp;gt;&amp;amp;nbsp; |
select count(nullif(if(name not like '南京%', '其他', '南京'), '其他'))
在 2020-09-27 17:23:07,"zya" <[hidden email]> 写道: >你好,链接无法显示,能麻烦再贴下吗 > > >------------------ 原始邮件 ------------------ >发件人: "user-zh" <[hidden email]>; >发送时间: 2020年9月27日(星期天) 下午5:20 >收件人: "user-zh"<[hidden email]>; > >主题: Re:回复:flink sql count问题 > > > >hi:<br/>这种方法看下能否满足<br/>select count(nullif(if(name not like '南京%', '其他', '南京'), '其他')) >在 2020-09-27 17:07:39,"zya" <[hidden email]> 写道: >>貌似只能这样了,感谢回答 >> >> >> >> >>------------------&nbsp;原始邮件&nbsp;------------------ >>发件人: "user-zh" <[hidden email]&gt;; >>发送时间:&nbsp;2020年9月27日(星期天) 下午5:03 >>收件人:&nbsp;"user-zh"<[hidden email]&gt;; >> >>主题:&nbsp;Re:回复:flink sql count问题 >> >> >> >>你count 也会生成记录啊。 你过滤掉就行&nbsp;&nbsp; 。 比如 having xxx&nbsp; ,或者加个filter >>在 2020-09-27 17:01:06,"zya" <[hidden email]&gt; 写道: >>&gt;这个是我现在的做法,但是的问题就是使用sum会在条件没满足时也会在mysql中生成一条记录 >>&gt;&amp;nbsp; >>&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; <[hidden email]&amp;gt;; >>&gt;发送时间:&amp;nbsp;2020年9月27日(星期天) 下午4:59 >>&gt;收件人:&amp;nbsp;"user-zh"<[hidden email]&amp;gt;; >>&gt; >>&gt;主题:&amp;nbsp;Re:flink sql count问题 >>&gt; >>&gt; >>&gt; >>&gt;最好把null 变成0,&amp;nbsp; 你这样&amp;nbsp;&amp;nbsp; sum(if(name like '南京%',1 , 0)) >>&gt;在 2020-09-27 16:53:56,"zya" <[hidden email]&amp;gt; 写道: >>&gt;&amp;gt;请教各位: >>&gt;&amp;gt;我有一个sql任务需要进行count,在count中有一个表达式,只想count符合条件的记录, >>&gt;&amp;gt;之前在hive中是这么写的:count(if(name like '南京%',1 , null)),但是flink sql中count不能为null,有什么别的方法能实现该功能吗? >>&gt;&amp;gt;使用的是flink1.10.1 blink >>&gt;&amp;gt;&amp;amp;nbsp; |
Hi,
试试用这种方式呢:count(1) filter (where name like '南京%') anonnius <[hidden email]> 于2020年9月27日周日 下午5:29写道: > select count(nullif(if(name not like '南京%', '其他', '南京'), '其他')) > > > > > > > > > > > > > > > > > > 在 2020-09-27 17:23:07,"zya" <[hidden email]> 写道: > >你好,链接无法显示,能麻烦再贴下吗 > > > > > >------------------ 原始邮件 ------------------ > >发件人: > "user-zh" > < > [hidden email]>; > >发送时间: 2020年9月27日(星期天) 下午5:20 > >收件人: "user-zh"<[hidden email]>; > > > >主题: Re:回复:flink sql count问题 > > > > > > > >hi:<br/>这种方法看下能否满足<br/>select count(nullif(if(name not like '南京%', > '其他', '南京'), '其他')) > >在 2020-09-27 17:07:39,"zya" <[hidden email]> 写道: > >>貌似只能这样了,感谢回答 > >> > >> > >> > >> > >>------------------&nbsp;原始邮件&nbsp;------------------ > >>发件人: > "user-zh" > <[hidden email]&gt;; > >>发送时间:&nbsp;2020年9月27日(星期天) 下午5:03 > >>收件人:&nbsp;"user-zh"<[hidden email]&gt;; > >> > >>主题:&nbsp;Re:回复:flink sql count问题 > >> > >> > >> > >>你count 也会生成记录啊。 你过滤掉就行&nbsp;&nbsp; 。 比如 having xxx&nbsp; > ,或者加个filter > >>在 2020-09-27 17:01:06,"zya" <[hidden email]&gt; 写道: > >>&gt;这个是我现在的做法,但是的问题就是使用sum会在条件没满足时也会在mysql中生成一条记录 > >>&gt;&amp;nbsp; > >>&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; > <[hidden email]&amp;gt;; > >>&gt;发送时间:&amp;nbsp;2020年9月27日(星期天) 下午4:59 > >>&gt;收件人:&amp;nbsp;"user-zh"<[hidden email] > &amp;gt;; > >>&gt; > >>&gt;主题:&amp;nbsp;Re:flink sql count问题 > >>&gt; > >>&gt; > >>&gt; > >>&gt;最好把null 变成0,&amp;nbsp; 你这样&amp;nbsp;&amp;nbsp; > sum(if(name like '南京%',1 , 0)) > >>&gt;在 2020-09-27 16:53:56,"zya" <[hidden email]&amp;gt; > 写道: > >>&gt;&amp;gt;请教各位: > >>&gt;&amp;gt;我有一个sql任务需要进行count,在count中有一个表达式,只想count符合条件的记录, > >>&gt;&amp;gt;之前在hive中是这么写的:count(if(name like '南京%',1 , > null)),但是flink sql中count不能为null,有什么别的方法能实现该功能吗? > >>&gt;&amp;gt;使用的是flink1.10.1 blink > >>&gt;&amp;gt;&amp;amp;nbsp; > -- Best, Benchao Li |
In reply to this post by anonnius
好的,谢谢
------------------ 原始邮件 ------------------ 发件人: "user-zh" <[hidden email]>; 发送时间: 2020年9月27日(星期天) 下午5:28 收件人: "user-zh"<[hidden email]>; 主题: Re:回复:flink sql count问题 select count(nullif(if(name not like '南京%', '其他', '南京'), '其他')) 在 2020-09-27 17:23:07,"zya" <[hidden email]> 写道: >你好,链接无法显示,能麻烦再贴下吗 > > >------------------&nbsp;原始邮件&nbsp;------------------ >发件人: "user-zh" <[hidden email]&gt;; >发送时间:&nbsp;2020年9月27日(星期天) 下午5:20 >收件人:&nbsp;"user-zh"<[hidden email]&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" <[hidden email]&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; <[hidden email]&amp;gt;; >&gt;发送时间:&amp;nbsp;2020年9月27日(星期天) 下午5:03 >&gt;收件人:&amp;nbsp;"user-zh"<[hidden email]&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" <[hidden email]&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; <[hidden email]&amp;amp;gt;; >&gt;&amp;gt;发送时间:&amp;amp;nbsp;2020年9月27日(星期天) 下午4:59 >&gt;&amp;gt;收件人:&amp;amp;nbsp;"user-zh"<[hidden email]&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" <[hidden email]&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; |
In reply to this post by lemon
Hi lemon,
内部判断if函数可以替换为case when Best, Robin lemon wrote > 请教各位: > 我有一个sql任务需要进行count,在count中有一个表达式,只想count符合条件的记录, > 之前在hive中是这么写的:count(if(name like '南京%',1 , null)),但是flink > sql中count不能为null,有什么别的方法能实现该功能吗? > 使用的是flink1.10.1 blink > -- Sent from: http://apache-flink.147419.n8.nabble.com/ |
感谢各位的回答,各位的方法我都试了一下,但是都会在下游输出一条结果,一条不符合条件的语句count会在下游输出0
我理解是flink中的count对于每一条数据都会输出一条结果,所以只能把if中的判断条件再放到最后的where中进行过滤 类似于 select count(if(name like '南京%',1 , null)) where name like '南京%' or name like '杭州%' group by ** 这样 ------------------ 原始邮件 ------------------ 发件人: "user-zh" <[hidden email]>; 发送时间: 2020年9月29日(星期二) 下午5:32 收件人: "user-zh"<[hidden email]>; 主题: Re: flink sql count问题 Hi lemon, 内部判断if函数可以替换为case when Best, Robin lemon wrote > 请教各位: > 我有一个sql任务需要进行count,在count中有一个表达式,只想count符合条件的记录, > 之前在hive中是这么写的:count(if(name like '南京%',1 , null)),但是flink > sql中count不能为null,有什么别的方法能实现该功能吗? > 使用的是flink1.10.1 blink > &nbsp; -- Sent from: http://apache-flink.147419.n8.nabble.com/ |
Hi lemon,
不是很理解你的疑问是什么,flink是事件驱动的,所以,来一条数据,就会被处理,走你的逻辑,就会产生一个结果,如果是第一次出现的key,只有一条数据,如果是状态中已经存在的key,会在控制台输出两条数据,一条true的是最终sink的结果。所以,每次输出一条结果有什么问题吗? Best, Robin ---------------------------------------------------------------------------------------------------------------- lemon wrote > 感谢各位的回答,各位的方法我都试了一下,但是都会在下游输出一条结果,一条不符合条件的语句count会在下游输出0 > 我理解是flink中的count对于每一条数据都会输出一条结果,所以只能把if中的判断条件再放到最后的where中进行过滤 > 类似于 select count(if(name like '南京%',1 , null)) where name > like '南京%' or name like '杭州%' group by ** 这样 > > > ------------------ 原始邮件 ------------------ > 发件人: > "user-zh" > < > vincent2015qdlg@ > >; > 发送时间: 2020年9月29日(星期二) 下午5:32 > 收件人: "user-zh"< > user-zh@.apache > >; > > 主题: Re: flink sql count问题 > > > > Hi lemon, > 内部判断if函数可以替换为case when > > Best, > Robin > > > lemon wrote > > 请教各位: > > 我有一个sql任务需要进行count,在count中有一个表达式,只想count符合条件的记录, > > 之前在hive中是这么写的:count(if(name like '南京%',1 , null)),但是flink > > sql中count不能为null,有什么别的方法能实现该功能吗? > > 使用的是flink1.10.1 blink > > &nbsp; > > > > > > -- > Sent from: http://apache-flink.147419.n8.nabble.com/ -- Sent from: http://apache-flink.147419.n8.nabble.com/ |
Free forum by Nabble | Edit this page |