banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

#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 smile

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 smile
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

 

Pied de page des forums

Powered by FluxBB