Home All Groups Group Topic Archive Search About
Author
26 Aug 2006 5:42 PM
Raben
Bonjour,
Je voudrais savoir s'il existe une fonction sql permettant d'obtenir le
pourcentage que représente une valeur(numérique) d'un champ  par
rapport par rapport au total des valeurs d'une colonne.
Je m'explique: j'ai une colonne 'nbville' qui contient le nombre
d'habitant par ville.Je cherche une fonction sql qui me permette
d'avoir le pourcentage que représente le nombre d'habitant d'une ville
par rapport au total.
Merci d'avance

Author
26 Aug 2006 5:52 PM
David Portas
Raben wrote:
> Bonjour,
> Je voudrais savoir s'il existe une fonction sql permettant d'obtenir le
> pourcentage que représente une valeur(numérique) d'un champ  par
> rapport par rapport au total des valeurs d'une colonne.
> Je m'explique: j'ai une colonne 'nbville' qui contient le nombre
> d'habitant par ville.Je cherche une fonction sql qui me permette
> d'avoir le pourcentage que représente le nombre d'habitant d'une ville
> par rapport au total.
> Merci d'avance

SELECT nbville, nbville/
(SELECT CAST(SUM(nbville) AS FLOAT)
  FROM ville) AS pct
FROM ville ;

--
David Portas, SQL Server MVP

Whenever possible please post enough code to reproduce your problem.
Including CREATE TABLE and INSERT statements usually helps.
State what version of SQL Server you are using and specify the content
of any error messages.

SQL Server Books Online:
http://msdn2.microsoft.com/library/ms130214(en-US,SQL.90).aspx
--
Author
26 Aug 2006 10:07 PM
Erland Sommarskog
David Portas (REMOVE_BEFORE_REPLYING_dpor***@acm.org) writes:
Show quote
> Raben wrote:
>> Je voudrais savoir s'il existe une fonction sql permettant d'obtenir le
>> pourcentage que représente une valeur(numérique) d'un champ  par
>> rapport par rapport au total des valeurs d'une colonne.
>> Je m'explique: j'ai une colonne 'nbville' qui contient le nombre
>> d'habitant par ville.Je cherche une fonction sql qui me permette
>> d'avoir le pourcentage que représente le nombre d'habitant d'une ville
>> par rapport au total.
>> Merci d'avance
>
> SELECT nbville, nbville/
>  (SELECT CAST(SUM(nbville) AS FLOAT)
>   FROM ville) AS pct
>  FROM ville ;

Une petite correction:

  SELECT nbville, 100 * nbville/
   (SELECT CAST(SUM(nbville) AS FLOAT)
    FROM ville) AS pct
   FROM ville ;

En SQL 2005 est possible d'écrire:

  SELECT nbville, 100.0 * nbville / SUM(nbville) OVER () AS pct
  FROM   ville


--
Erland Sommarskog, SQL Server MVP, esq***@sommarskog.se

Books Online for SQL Server 2005 at
http://www.microsoft.com/technet/prodtechnol/sql/2005/downloads/books.mspx
Books Online for SQL Server 2000 at
http://www.microsoft.com/sql/prodinfo/previousversions/books.mspx

AddThis Social Bookmark Button