如何找到连续重复的次数

时间:2015-02-01 06:34:08

标签: mysql

所以我试着编写一个mysql脚本来查找' value'中的连续重复次数。这个表的一栏。

id    value    result
--    -----    ------
1      1        0
2      1        1
3      2        0
4      3        0
5      3        1

所以在这种情况下我希望得到值2

2 个答案:

答案 0 :(得分:1)

使用用户变量获取下一个值,   GROUP所以连续值大于2不再计算,将所有值放在子查询中,并使用一个简单的CASE来增加所需的值,如果值=下一个值。添加盐和胡椒。

SELECT SUM(CASE WHEN y.value=y.next_value THEN @var+1 ELSE @var END) consecIds
    FROM
    (SELECT t.id, t.value, next_id, n.value next_value
      FROM
    (
      SELECT t.id, t.value,

      (
        SELECT id
          FROM table1
         WHERE id > t.id
         ORDER BY id
         LIMIT 1
      ) next_id
        FROM table1 t,(SELECT @var:=0)x
    ) t LEFT JOIN table1 n

         ON t.next_id = n.id 
         GROUP BY t.value,n.value)y

FIDDLE

答案 1 :(得分:-1)

SELECT COUNT(DISTINCT column_name) FROM table_name;

DISTINCT将删除结果中指定列的重复重复。

COUNT将计算结果中的行数。

COUNT(DISTINCT column_name)函数返回指定列的不同值的数量。