Group continuous replications with MySQL

1

I wanted to know if there is any way to group repeats using only MySQL.

If you do a SELECT * from tabela WHERE id_usuario = 1 ORDER BY id ASC will return:

id | id_usuario | Data       | Texto
0  | 1          | 2016-10-16 | Sua senha foi alterada
1  | 1          | 2016-10-17 | Sua senha foi alterada
2  | 1          | 2016-10-18 | Sua senha foi alterada
3  | 1          | 2016-10-19 | Sua chave de 2FA foi alterada
4  | 1          | 2016-10-19 | Sua chave de 2FA foi alterada
5  | 1          | 2016-10-20 | Seu acesso foi revogado
6  | 1          | 2016-10-20 | Sua senha foi alterada
7  | 1          | 2016-10-20 | Sua chave de 2FA foi alterada

I wish there were some function that would return exactly:

id | id_usuario | Data       | Repetição | Texto
2  | 1          | 2016-10-18 | 3         | Sua senha foi alterada
4  | 1          | 2016-10-19 | 2         | Sua chave de 2FA foi alterada
5  | 1          | 2016-10-20 | 1         | Seu acesso foi revogado
6  | 1          | 2016-10-20 | 1         | Sua senha foi alterada
7  | 1          | 2016-10-20 | 1         | Sua chave de 2FA foi alterada

In this way removing the repetitions and returning the number of repetitions in "Repetition", which could be generated as a count(id) as Repetição , this would allow to inform that there was another notification of the same type and would like to expand to see the duplicate notifications, making a new request.

    
asked by anonymous 20.10.2016 / 16:25

1 answer

0

Use COUNT (), DISTINCT, and GROUP BY.

Example:

  SELECT id, userid, Date, COUNT (DISTINCT Text) AS Repeat, Text from table WHERE userid = 1 GROUP BY ASC id

    
25.11.2016 / 22:55