where 那块的含义是说这张表自己进行关联两次,关联的时候,第一张表的数据是第二张的后一条,第二张表的数据是第三张的后一条,而且第一张和第二张的Numz一样,第二张和第三张表记录的Num相同但是这样做就如楼上所说如果多条连续的时候,不可能就关联多次,我觉得可以采取以下方式进行处理,可以处理多次情况Mysql: 使用用户变量 @num进行统计,如果num的值进行该表了则@num置为1,如果num值相同,则加1,这样就相当于组内排序了,然后连续三条则num值为3,连续四条num值为4,只要最后过滤以下就可以了
如果是ORACLE等提供窗口函数的数据库,这有一个类似的问题,可以参考其写法:http://www.raqsoft.cn/?p=2899.
这个写法不需要连接不定数量的表,但很难看懂,当然写出来就更难了。
其实这个运算本身很容易理解,可以试试润乾免费版的集算器,通过有序集合完成上述计算非常简单,类似上面的链接,脚本可以这样写: 如果想求连续n个相同的num,只需要将A3中的表达式中的 lx:3改成 lx:n即可。
集算器提供JDBC接口,可以像数据库一样嵌入到应用程序中,用起来很简单。
使用用户变量 @num进行统计,如果num的值进行该表了则@num置为1,如果num值相同,则加1,这样就相当于组内排序了,然后连续三条则num值为3,连续四条num值为4,只要最后过滤以下就可以了