Fórum Como não repetir registros com determinadas colunas duplicadas no SQL Server? #599565

07/01/2019

0

Bom dia a todos,

Gostaria de saber como fazer uma determinada query funcionar. Eu tenho uma tabela chamada tb_log_interacao, na qual tenho a seguinte query:

SELECT id, id_postagem, id_tipo_interacao, id_usuario, id_usuario_receptor, data_interacao
FROM tb_log_interacao
WHERE status = 1


No meu caso específico, eu não posso repetir registros que tenham os camposid_postagem e id_usuario com o mesmo valor. por exemplo, se eu tiver o tipo id_postagem com valor 10 e o id_usuario com valor 2135 num registro, esses valores não podem se repetir. Tentei usar DISCTINT para resolver isso, mas ele acaba afetando os outros campos da coluna, o que não me interessa, pois os outros podem repetir. Somente esses dois acima citados é que não podem ser repetidos nos registros.

Alguém pode me ajudar com isso?
César Leitão

César Leitão

Responder

Post mais votado

07/01/2019

Um opção seria você criar um select com group by pelos campos id_postagem e id_usuario.
Criado esse select, a cada linha você pode chamar um select com TOP 1, trazendo apenas o primeiro processo que contém o id_postagem e o id_usuario daquela linha.
Segue um exemplo?

SELECT 
	( 
		SELECT TOP 1 id, id_postagem, 
			   id_tipo_interacao, 
			   id_usuario, 
			   id_usuario_receptor, 
			   data_interacao 
		FROM tb_log_interacao LogInt
		WHERE LogInt.id_postagem = id_postagem
		AND LogInt.id_usuario = id_usuario 
		WHERE status = 1
	)
FROM tb_log_interacao
GROUP BY id_postagem,id_usuario 
WHERE status = 1

Tiago Souza

Tiago Souza
Responder

Gostei + 2

Mais Posts

08/01/2019

César Leitão

Muito obrigado pela ajuda Tiago.

Aproveitei e fiz umas adaptações na query porque acabei precisando!

Valeu fera!
Responder

Gostei + 1

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar