Merci à Guillaume pour sa question :
Je rencontre un pb sur l’écriture d’une requête sous PostgreSQL.
Je suis amené à faire ce type de requête :
SELECT DISTINCT JOIN1.CODE DETAIL0,
        COUNT(DISTINCT JOIN0.CODE) over (partition BY JOIN1.CODE) UF,
        COUNT(DISTINCT JOIN0.CODE) over () UF_TOTAL
  FROM QRY_CHARGE_UF REF
      INNER JOIN REQ_UF JOIN0 ON JOIN0.ID = REF.IDUF
      LEFT JOIN REQ_POLE JOIN1 ON JOIN1.ID = JOIN0.IDPOLE
Or, le « count distinct » ne fonctionne pas sous PostgreSQL avec les fonctions fenêtrées.
Savez-vous si ca sera prochainement corrigé ?
Car j’ai vu sur internet des contournements possibles mais ca oblige à passer par des sous-requêtes. Dans l’exemple, ci-dessus, ca ne sera pas très gênant car je n’en ai que 2 mais je pourrais en avoir bien plus.
Du coup, je crains pour les temps de réponse si je dois rajouter 4,5,6,… sous requêtes.
Réponse : 
La situation est similaire avec SQL Server 2017 : : https://www.itprotoday.com/sql-server/w ... lculations . La fonctionnalité ne doit donc pas être standard (à confirmer). 
Heureusement, des contournements existent. Il est par exemple possible de travailler avec des max et une seule sous-requête effectuant des dense_rank over (...) 
Exemple ici : https://stackoverflow.com/questions/477 ... -partition
La question était posée sur Amazon Redshift mais ce produit est au départ basé sur PostgreSQL et le contournement suggéré fonctionne de la même façon.
			
			
									
									Count distinct over window
- 
				Phil
 - Administrateur du site
 - Messages : 303
 - Enregistré le : mar. 1 sept. 2015 00:38
 - Localisation : France
 - Contact :
 
Count distinct over window
Cdlt. Phil - pgphil.ovh