按照某特征归并分组计数

【问题】

I want to count all rows that are less then 10 in column "value" but if the next rows also have a value less then 10 only count it as 1(as a group).
So in this exampel I would like to get back the number 3.
I use
 mysql

So id-2 with value(3) < 10 = +1
Id-4,5,6 value < 10 = +1
Id-9 value < 10 = +1

-- id -- value --

|.. 1 ..|.. 11 ...|

|.. 2 ..|... 3 ...|

|.. 3 ..|.. 12 ...|

|.. 4 ..|... 2 ...|

|.. 5 ..|... 1 ...|

|.. 6 ..|... 3 ...|

|.. 7 ..|.. 15 ...|

|.. 8 ..|.. 24 ...|

|.. 9 ..|... 5 ...|

|. 10 ..|.. 15 ...|

【回答】

       直观思路是分组时候不做汇总,且只和相邻的数据比,这样就能把数据依次分为N组:大于等于10、小于10、大于等于10….,再统计出小于10的有几组就可以了。但SQL的分组必须和聚合同时计算,也难以进行相邻数据比较,只能绕道实现,结果代码非常复杂难懂。这种问题用SPL实现,代码更直观易懂:


A

1

$select id,value from tb

2

=A1.group@o(value<10)

3

=A2.count(value<10)

A1sql取数

A2:相邻数据按照大于等于10,小于10归并分组

A3:计算小于10的有几组