Bonjour,
Je souhaite supprimer les doublons d'une table. J'utilise pgadmin 4 et c'est du postgre sql.
Est-ce que quelqu'un aurait une syntaxe me permettant d'effectuer une suppression des doublons dans une table.
Merci d'avance.
 Problème doublons PostGreSQL
 Problème doublons PostGreSQL
				
				
						
						
				Bonjour,
Je souhaite supprimer les doublons d'une table. J'utilise pgadmin 4 et c'est du postgre sql.
Est-ce que quelqu'un aurait une syntaxe me permettant d'effectuer une suppression des doublons dans une table.
Merci d'avance.
 
 
				
				
						
						
				Par nature le SQL étant ensembliste, il est impossible de supprimer des doublons, sans modifier la structure de la table afin d'introduire une colonne de dédoublonnage, par exemple avec un auto incrément.
Commencez par modifier votre base et ensuite il vous sera possible de dédoublonner par exemple en utilisant le MAX de cette nouvelle colonne groupée par l'ensemble des autres colonnes, pour lequel le nombre d'élément est > 1 (HAVING COUNT(*) > 1)
À me lire : https://sqlpro.developpez.com/cours/doublons/
A +
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
* * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *
 
 
				
				
						
						
				J'ai ajouté une colonne auto incrementé "idcol". J'essaie de supprimer les doublons avec cette fonction (trouvé sur le net), or j'ai une erreur de syntaxe sur ou près de « LEFT » d'après Pgadmin. Des solutions ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
 
 
				
				
						
						
				La syntaxe SQL de PostGreSQL étant limitée, les jointures dans le delete ne sont pas supportées vous devez utiliser une syntaxe du genre :
DELETE FROM MaTable
WHERE EXISTS(...)
A +
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
* * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *
 
 
				
				
						
						
				si ,avec USING.
Du coup, si la table a un identifiant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
 
 
				
				
						
						
				J'avais oublié les "rewritable" CTE qui sont une épouvante, alors que la norme SQL permet l'écriture de requête UPDATE directement dans une CTE :
Bizarre cette syntaxe hors norme de PostGreSQL alors que la norme est plus simple !
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
A +
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
* * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *
Partager