#1 Fri 26 October 2018 11:47
- Epipactis
- Participant occasionnel
- Date d'inscription: 28 May 2018
- Messages: 11
QGIS 3.0: Besoin d'un coup de pouce sur requête SQL
Bonjour à tous,
J'ai une table contenant les champs suivant : Ref (l'ID), Nom, Lieudit, Commune, et d'autres qui ne m'intéressent pas.
Je cherche à sélectionner parmi toutes ces données celles dont Nom, Lieudit et Commune sont les mêmes (des doublons quoi ^^).
Et je cherche ensuite à sélectionner un seul de ces doublons. J'ai essayé la requête suivante, mais je ne trouve pas où ça bloque :
Code:
SELECT MIN(Ref) FROM table AS t1, table AS t2 WHERE t1.id > t2.id AND t1.Nom= t2.Nom AND t1.Lieudit= t2.Lieudit AND t1.Commune= t2.Commune
Si vous pouvez m'aider, je vous en serait reconnaissant
Dernière modification par Epipactis (Fri 26 October 2018 11:48)
Hors ligne
#2 Fri 26 October 2018 12:31
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3931
Re: QGIS 3.0: Besoin d'un coup de pouce sur requête SQL
Bonjour,
Peut-être https://sql.sh/55-requete-trouver-doublon (résultat renvoyé par g***** entre autres)?
Devrait pas être plutôt dans le forum GeoBD? Pas de QGIS là-dedans, il me semble.
Hors ligne
#3 Fri 26 October 2018 13:55
- Epipactis
- Participant occasionnel
- Date d'inscription: 28 May 2018
- Messages: 11
Re: QGIS 3.0: Besoin d'un coup de pouce sur requête SQL
Merci pour ta réponse
J'ai déjà fouiner sur ce site, mais les requêtes ne fonctionnent pas...
Je fait ces manips' sur QGis sur une couche shp., c'est pour cela que je avais mis ce topic ici, mais si il n'est pas à sa place je peux le déplacer (si j'en ai la possibilité bien entendu).
Hors ligne
#4 Fri 26 October 2018 14:27
- Epipactis
- Participant occasionnel
- Date d'inscription: 28 May 2018
- Messages: 11
Re: QGIS 3.0: Besoin d'un coup de pouce sur requête SQL
J'ai réussi à sélectionner les doublons avec la requête suivante :
Code:
SELECT* FROM input1 LEFT OUTER JOIN ( SELECT MAX(Ref) AS Ref, Nomlatin, Lieudit, Commune FROM input1 GROUP BY Nomlatin, Lieudit, Commune ) as t1 ON input1.Ref = t1.Ref WHERE t1.Ref IS NULL
Mais dès que j'utilise DELETE à la place de SELECT afin de supprimer ces doublons, j'ai ce message d'erreur :
virtual: Query execution error on CREATE TEMP VIEW _tview AS DELETE
FROM input1
LEFT OUTER JOIN (
SELECT MAX(Ref) AS Ref, Nomlatin, Lieudit, Commune
FROM input1
GROUP BY Nomlatin, Lieudit, Commune
) as t1
ON input1.Ref = t1.Ref
WHERE t1.Ref IS NULL: 1 - near "DELETE": syntax error
A quoi est-ce du ?
Hors ligne
#5 Fri 26 October 2018 15:57
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1147
Re: QGIS 3.0: Besoin d'un coup de pouce sur requête SQL
Une vue ne peut contenir qu'une instruction SELECT ou VALUES.
cf. https://doc.postgresql.fr/10/sql-createview.html
Je suppose que vous utilisez QGIS pour exécuter la requête,
et celui ci à l'air d'englober la requête dans une vue temporaire.
Qu'utilisez vous exactement, pour la lancer ?
Hors ligne
#6 Fri 26 October 2018 15:59
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1147
Re: QGIS 3.0: Besoin d'un coup de pouce sur requête SQL
Si vous passez par la fenêtre SQL Window
du DBManager, et que vous appuyez juste sur executer
je pense que ca devrait passer.
Hors ligne