считать повторяющиеся значения строк без разрывов - PullRequest
0 голосов
/ 11 июня 2019

Я хочу посчитать повторяющиеся значения в строках один за другим без перерывов. Если оно разрывается со значением NULL, то отсчитайте его снова с нуля.

Это простая таблица, состоящая из action_id и event_code.

| id | action_id  | event_code |
--------------------------------
| 1  |     1      |    100     |
| 2  |     1      |    200     |
| 3  |     1      |    300     |
| 4  |     2      |    100     |
| 5  |     2      |    300     |
| 6  |     3      |    100     |
| 7  |     3      |    200     |
| 8  |     3      |    400     |

Затем группируется по action_id (с SQL-запросом):

| action_id | c100 | c200 | c300 | c400 |
-----------------------------------------
|     1     |  1   |  1   |  1   |  0   |
|     2     |  1   |  0   |  1   |  0   |
|     3     |  1   |  1   |  0   |  1   |

и как результат:

| action_id | c100 | e100_r | c200 | e200_r | c300 | e300_r | c400 | e400_r |
-----------------------------------------------------------------------------
|     1     |  1   |   3    |  1   |   1    |  1   |   2    |  0   |   0    |
|     2     |  1   |   3    |  0   |   0    |  1   |   2    |  0   |   0    |
|     3     |  1   |   3    |  1   |   1    |  0   |   0    |  1   |   1    |

или

| id | action_id  | event_code | rep_count |
--------------------------------------------
| 1  |     1      |    100     |     3     |
| 2  |     1      |    200     |     1     |
| 3  |     1      |    300     |     2     |
| 4  |     2      |    100     |     3     |
| 5  |     2      |    300     |     2     |
| 6  |     3      |    100     |     3     |
| 7  |     3      |    200     |     1     |
| 8  |     3      |    400     |     1     |

Возможно ли это?

РЕДАКТИРОВАТЬ 1: c100 - код события = = 100 и e100_r - повтор кода события == 100

РЕДАКТИРОВАТЬ 2: Строки разбиваются на ноль (0)

...