色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

mysql 連續出現次數

錢斌斌2年前12瀏覽0評論

MySQL 中經常會有需要統計連續出現次數的場景,比如求某個數字出現的最長連續次數。下面我們來學習一下如何在 MySQL 中實現此功能。

假設我們有一個包含數字的表格:

CREATE TABLE `numbers` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`number` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;

數字表格如下:

+----+--------+
| id | number |
+----+--------+
|  1 |      0 |
|  2 |      1 |
|  3 |      1 |
|  4 |      0 |
|  5 |      1 |
|  6 |      1 |
|  7 |      1 |
|  8 |      0 |
|  9 |      0 |
| 10 |      1 |
+----+--------+

現在我們要找到數字列中連續出現相同數字的最大次數。我們可以使用如下 SQL 語句:

SELECT
number,
COUNT(*) AS cnt
FROM (
SELECT
number,
@idx := IF(@prev = number, @idx, @idx + 1) AS idx,
@prev := number
FROM
numbers,
(SELECT @prev := NULL, @idx := 0) AS init
ORDER BY id) AS t
GROUP BY idx, number;

結果為:

+--------+-----+
| number | cnt |
+--------+-----+
|      0 |   1 |
|      1 |   2 |
|      0 |   1 |
|      1 |   3 |
|      0 |   2 |
|      1 |   1 |
+--------+-----+

這個結果顯示了每個數字的連續出現次數以及出現的順序。對于我們的樣例表,3 是連續出現的最大次數。

+--------+----------+
| number | max_count |
+--------+----------+
|      0 |         2 |
|      1 |         3 |
+--------+----------+

通過上述 SQL 語句,我們可以計算出數字列中每個數字的連續出現次數,從而找到連續出現次數的最大值。