所以我试着编写一个mysql脚本来查找' value'中的连续重复次数。这个表的一栏。
id value result
-- ----- ------
1 1 0
2 1 1
3 2 0
4 3 0
5 3 1
所以在这种情况下我希望得到值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
答案 1 :(得分:-1)
SELECT COUNT(DISTINCT column_name) FROM table_name;
DISTINCT将删除结果中指定列的重复重复。
COUNT将计算结果中的行数。
COUNT(DISTINCT column_name)函数返回指定列的不同值的数量。