Hi,

这种情况你可以先对主表根据主键(note_id)去重,然后再维表 join,然后再 count。
去重语法可以看这个文档:
https://ci.apache.org/projects/flink/flink-docs-master/zh/dev/table/sql/queries.html#%E5%8E%BB%E9%87%8D

Best,
Jark

On Sat, 9 May 2020 at 20:34, Benchao Li <libenc...@gmail.com> wrote:

> 那这样可能的确是不太好处理了,或者可以把维表改成:
> > 维表(图片表):picture(pic_count count, note_id varchar)
>
> 纯SQL的方法我没有想到更好的办法。
>
> 867127831 <867127...@qq.com> 于2020年5月9日周六 下午8:21写道:
>
> > 你好,我的主表流中note_id是会有重复的,比如我的主表是来自于binlog,这个note_id对应的记录中任何一个字段的变更
> > ,都会有一条对应于这个note_id的消息进入到主流中。
> >
> >
> >
> >
> >
> > ------------------&nbsp;原始邮件&nbsp;------------------
> > 发件人:&nbsp;"Benchao Li"<libenc...@gmail.com&gt;;
> > 发送时间:&nbsp;2020年5月9日(星期六) 晚上7:36
> > 收件人:&nbsp;"user-zh"<user-zh@flink.apache.org&gt;;
> >
> > 主题:&nbsp;Re: flink lookup join 关联出多条记录的语义问题
> >
> >
> >
> > Hi,维表关联出来多条数据是符合预期的,维表本来的语义就是可以join出0到多条都有可能,需要看你的数据。
> >
> > 你的主表的流里面note_id会有重复么?没有重复的话,直接group by求count应该是可以的。
> >
> > 867127831 <867127...@qq.com&gt; 于2020年5月9日周六 下午7:10写道:
> >
> > &gt; Hi,&amp;nbsp;
> > &gt;
> > &gt;
> > &gt; 在使用flink做lookup join时,如果左表的一条记录关联出右表的多条记录,这个时候该怎么处理? 比如有如下两个表:
> > &gt;
> > &gt;
> > &gt; 主表(笔记表):note(note_id varchar)
> > &gt; 维表(图片表):picture(pic_id varchar, note_id varchar)
> > &gt;
> > &gt;
> > &gt; 一篇笔记会有多张图片,所以一条note记录对应了多条picture记录,现在要实时统计出每一个note有多少张picture,
> > 我的sql是这样的:
> > &gt;
> > &gt;
> > &gt; select
> > &gt; &amp;nbsp; N.note_id as note_id,
> > &gt; &amp;nbsp; COUNT(P.pic_id) AS img_count&amp;nbsp;
> > &gt; from note N
> > &gt; LEFT JOIN picture FOR SYSTEM_TIME AS OF N.proc_time AS P ON
> N.note_id
> > =
> > &gt; P.note_id
> > &gt; group by N.note_id
> > &gt;
> > &gt;
> > &gt;
> > &gt; 如果不使用group by语法,有没有其它途径实现这个目的呢?
> >
> >
> >
> > --
> >
> > Benchao Li
> > School of Electronics Engineering and Computer Science, Peking University
> > Tel:+86-15650713730
> > Email: libenc...@gmail.com; libenc...@pku.edu.cn
>
>
>
> --
>
> Benchao Li
> School of Electronics Engineering and Computer Science, Peking University
> Tel:+86-15650713730
> Email: libenc...@gmail.com; libenc...@pku.edu.cn
>

回复