PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come posso (o posso) SELEZIONARE DISTINCT su più colonne?

SELECT DISTINCT a,b,c FROM t

è approssimativamente equivalente a:

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

È una buona idea abituarsi alla sintassi GROUP BY, poiché è più potente.

Per la tua domanda, lo farei in questo modo:

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
 )