代码之家  ›  专栏  ›  技术社区  ›  Casel Chen

在KSQL中,如何在窗口和分组后选择最大窗口记录?

  •  1
  • Casel Chen  · 技术社区  · 7 年前
    ksql> CREATE TABLE HOPPING_TABLE AS SELECT ID, WINDOWSTART() AS WINSTART, COUNT(*) AS CNT FROM MY_STREAM HOPPING WINDOW (SIZE 30 DAYS, ADVANCED BY 1 DAYS) GROUP BY ID;
    
    ksql> SELECT ID, WINSTART, CNT FROM HOPPING_TABLE;
    
    id                    winstart        cnt
    -------------------------------------------
    
    874163197805291909    1547164800000    23
    874163197805291909    1547424000000    11
    874163197805291909    1547510400000    26
    874163197805291909    1547683200000    12
    
    660071199310134801    1545868800000    6
    660071199310134801    1546560000000    7
    660071199310134801    1547251200000    3
    

    现在,我只关心窗口的cnt,每个窗口都有最大的winstart值 ID 那么,如何通过KSQL实现这一点呢? 考虑到上面的示例(2个ID分组),我希望可以从上面的跳转表生成一个包含以下记录的表:

    id                    winstart        cnt
    -------------------------------------------
    
    874163197805291909    1547683200000    12
    
    660071199310134801    1547251200000    3
    
    0 回复  |  直到 7 年前
    推荐文章