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

distinct() funktion (ikke vælg qualifier) ​​i postgres

Faktisk er dette den almindelige DISTINCT-kvalifikation på en SELECT -- men med en vildledende syntaks (du har ret i det punkt).

DISTINCT er aldrig en funktion, altid et nøgleord. Her bruges det (forkert) som om det var en funktion, men

select distinct(pattern) as pattern, style, ... etc ...
from styleview
where ... etc ...

svarer faktisk til alle følgende former:

-- tilføj et mellemrum efter distinct :

select distinct (pattern) as pattern, style, ... etc ...
from styleview
where ... etc ...

-- fjern parenteser omkring kolonnenavn:

select distinct
    pattern as pattern, style, ... etc ...
from
    styleview
where
    ... etc ...

-- indhold af indrykningssætninger:

select distinct
    pattern as pattern, style, ... etc ...
from
    styleview
where
    ... etc ...

-- fjern redundant alias, der er identisk med kolonnenavn:

select distinct
    pattern, style, ... etc ...
from
    styleview
where
    ... etc ...

Supplerende læsning:

Bemærk:OMG Ponyer i et svar på nuværende spørgsmål nævnte DISTINCT ON udvidelse fremhævet af PostgreSQL.
Men (som Jay rigtigt bemærkede i en kommentar) er det ikke det, der bruges her, fordi forespørgslen (og resultaterne) ville have været anderledes, f.eks.:

select distinct on(pattern) pattern, style, ... etc ...
from styleview
where ... etc ...
order by pattern, ... etc ...

svarende til:

select  distinct on (pattern)
    pattern, style, ... etc ...
from
    styleview
where
    ... etc ...
order by
    pattern, ... etc ...

Supplerende læsning:

Bemærk:Lukas Eder i et svar på nuværende spørgsmål nævnte syntaksen ved at bruge DISTINCT nøgleordet i en aggregeret funktion:
COUNT(DISTINCT (foo, bar, ...)) syntaks med HSQLDB
(eller COUNT(DISTINCT foo, bar, ...) som også virker til MySQL, men også til PostgreSQL, SQL Server, Oracle og måske andre).
Men (det er klart nok) ikke det, der bruges her.



  1. Benchmarking Managed PostgreSQL Cloud Solutions - Google Cloud:Tredje del

  2. Basering af databasemodeller i virkeligheden:En bloggers udfordring

  3. csv uploadet virker ikke

  4. Hvordan kan jeg lave boolesk logik på to kolonner i MySQL?