一、Insert and Remove Stream

1、

select * from com.ebc.updatelistener.User

只输出newEvents,不会输出oldEvents。即使加上isstream,也不会。

2、

select irstream * from com.ebc.updatelistener.User.win:length(5)

当达到第6个时,第1个会成为oldEvents。如果去掉irstream,则不会产生oldEvents。

二、Filter and Where-Clause

Filter:

select * from com.ebc.filterwhere.User(amount>=200).win:length(5)

where:

select * from com.ebc.filterwhere.User.win:length(5) where amount>=200

filter:  只有符合条件的event才进入view和触发updateListener

where:所有event都会进入view,只有符合条件的event才触发updateListener

三、聚合与分组

1、sum

//统计进入的5个event的总额
 select sum(amount) from com.ebc.aggGroup.User.win:length_batch(5) 

--UpdateListener 
Integer sumV = (Integer) (newEvents[0].get("sum(amount)"));

2、groupby

初始数据

--view
class User implements Serializable {
private String name;
private int age;
private int amount;
}
--事件
runtime.sendEvent(new User("遥远1",1,1));
runtime.sendEvent(new User("遥远2",2,2));
runtime.sendEvent(new User("遥远1",3,3));
runtime.sendEvent(new User("遥远2",4,4));
runtime.sendEvent(new User("遥远1",5,5));
runtime.sendEvent(new User("遥远6",6,6));

情况1:

--epl
select name,sum(amount) from com.ebc.aggGroup.User.win:length_batch(5) group by name
--输出
name=遥远2,sumV=6
name=遥远1,sumV=9

情况2:

--epl
select name,sum(amount),age from com.ebc.aggGroup.User.win:length_batch(5) group by name
--输出
name=遥远1,sumV=9,age=1
name=遥远2,sumV=6,age=2
name=遥远1,sumV=9,age=3

name=遥远2,sumV=6,age=4
name=遥远1,sumV=9,age=5

情况3:

--epl
select name,sum(amount),age from com.ebc.aggGroup.User.win:length_batch(5) group by name,age
--输出
name=遥远1,sumV=1,age=1
name=遥远2,sumV=2,age=2
name=遥远1,sumV=3,age=3
name=遥远1,sumV=5,age=5
name=遥远2,sumV=4,age=4

如果情况3的epl不变,修改发送数据,即红色部分

runtime.sendEvent(new User("遥远1",1,1));
runtime.sendEvent(new User("遥远2",2,2));
runtime.sendEvent(new User("遥远1",,3));
runtime.sendEvent(new User("遥远2",4,4));
runtime.sendEvent(new User("遥远1",,5));
runtime.sendEvent(new User("遥远6",6,6));

则输出

name=遥远1,sumV=9,age=1
name=遥远2,sumV=2,age=2
name=遥远2,sumV=4,age=4

group by总结

--只对name分组来sum,age不参与
select name,sum(amount),age from com.ebc.aggGroup.User.win:length_batch(5) group by name --对name、age分组来sum
select name,sum(amount),age from com.ebc.aggGroup.User.win:length_batch(5) group by name,age

esper(3)-窗口&聚合分组的更多相关文章

  1. PB gird类型数据窗口 设置分组、分组小计、合计

    今天遇到一个需求,gird表格数据如下:  部门  类型 数据   A  类型1  1  A  类型2  2  B  类型1  3  B  类型2  4   合计 10 实际需要显示的结果为:  部门 ...

  2. 【高德地图API】从零开始学高德JS API(三)覆盖物——标注|折线|多边形|信息窗口|聚合marker|麻点图|图片覆盖物

    原文:[高德地图API]从零开始学高德JS API(三)覆盖物——标注|折线|多边形|信息窗口|聚合marker|麻点图|图片覆盖物 摘要:覆盖物,是一张地图的灵魂.有覆盖物的地图,才是完整的地图.在 ...

  3. Django之ORM操作(聚合 分组、F Q)

    Django之ORM操作(聚合 分组.F Q) 聚合 aggregate()是QuerySet的一个终止子句,也就是说,他返回一个包含一些键值对的字典,在它的后面不可以再进行点(.)操作.   键的名 ...

  4. day056-58 django多表增加和查询基于对象和基于双下划线的多表查询聚合 分组查询 自定义标签过滤器 外部调用django环境 事务和锁

    一.多表的创建 from django.db import models # Create your models here. class Author(models.Model): id = mod ...

  5. Django day08 多表操作 (五) 聚合,分组查询 和 F,Q查询

    一:聚合,分组查询 二:F, Q查询

  6. MySql 筛选条件、聚合分组、连接查询

    筛选条件 比较运算符 等于: = ( 注意!不是 == ) 不等于: != 或 <> 大于: > 大于等于: >= 小于: < 小于等于: <= IS NULL I ...

  7. 数据聚合 & 分组:新一代系统监控的核心功能

    遥想 2015 年 8 月 17 日,Cloud Insight 还在梳理功能原型,畅想 Cloud Insight 存在的意义:为什么阿里云用户需要使用 Cloud Insight 来加强管理. 而 ...

  8. SQL你必须知道的-查询聚合分组排序

    use MySchoolTwo    -- 简单查询    select * from Student    -- 话说这种查询的效率要比 * 要高级点    select sId , sName , ...

  9. MongoDB 聚合分组取第一条记录的案例及实现

    关键字:MongoDB: aggregate:forEach 今天开发同学向我们提了一个紧急的需求,从集合mt_resources_access_log中,根据字段refererDomain分组,取分 ...

随机推荐

  1. 关于jdk1.5之后的自定拆装箱

    我们都知道jdk在1.5版本之后,增加了一些新特性,我们称之为语法糖,有:1.泛型,2.foreach增强for循环,3.自动拆装箱,4.可变参数,5.枚举,6.静态导入 public class T ...

  2. SpringMVC内容略多 有用 熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器、过滤器等Web组件以及MVC架构模式进行Java Web项目开发的经验。

    熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器.过滤器等Web组件以及MVC架构 ...

  3. 报错:空指针java.lang.NullPointerException 原因 Action层 private UserService userservice 上未加@Autowire注解

    java.lang.NullPointerException at com.itheima.test.Test2.fun1(Test2.java:18) at sun.reflect.NativeMe ...

  4. p3203 弹飞绵羊

    传送门 分析 基本的lct操作,建一个点N表示弹飞出去的点,每次输出N的左子树的大小即可 代码 #include<iostream> #include<cstdio> #inc ...

  5. 51NOD 1371填数字

    传送门 分析 此题关键在于想出dp[i][j][k]代表考虑到第i行,还能放1的的共有j列,还能放2的共有k行.之后就枚举每一行是没有还是1个1还是2个1还是1个2,然后转移即可. 代码 #inclu ...

  6. spoj2142 Arranging Flowers

    传送门 题目大意 给你n和m,表示一个n*n的数独已经填完了m行,让你填出剩下几行,要求答案的字典序最小. 分析 看到这道题我首先想到的是记录每行每列使用了哪些数字,然后贪心的来填,但是发现用这种策略 ...

  7. Luogu 3457 [POI2007]POW-The Flood

    感觉自己什么题都写不动了. 又是一个神贪心:把所有城市中的点按照高度从小到大排序之后拿出来逐个计算,枚举其他高度小于它的点向四周扩展,如果这个点不能被之前放过的抽水机覆盖,那么把答案加一,并在这个点放 ...

  8. RabbitMQ 相关概念和方法详解

    名词解释 ConnectionFactory: 与 RabbitMQ 服务器连接的管理器. Connection: 与 RabbitMQ 服务器的连接. Channel: 与 Exchange 的连接 ...

  9. web.xml文件的Url-pattern 节点配置

  10. 【转】【Android】ProgressDialog进度条对话框的使用

    Android ProgressDialog进度条对话框的使用: 转自:http://aina-hk55hk.iteye.com/blog/679134/ <?xml version=" ...