PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment puis-je (ou puis-je) SELECT DISTINCT sur plusieurs colonnes ?

SELECT DISTINCT a,b,c FROM t

est à peu près équivalent à :

SELECT a,b,c FROM t GROUP BY a,b,c

C'est une bonne idée de s'habituer à la syntaxe GROUP BY, car elle est plus puissante.

Pour votre requête, je le ferais comme ceci :

UPDATE sales
SET status='ACTIVE'
WHERE id IN
(
    SELECT id
    FROM sales S
    INNER JOIN
    (
        SELECT saleprice, saledate
        FROM sales
        GROUP BY saleprice, saledate
        HAVING COUNT(*) = 1 
    ) T
    ON S.saleprice=T.saleprice AND s.saledate=T.saledate
 )