SQL提供了一个pourcentage

问题描述 投票:0回答:2

我用法语提出这个要求。我不确定你需要数据库DB。我正在使用ORACLE

我只想乘以avg(Taux_remplissage)或MOY x 100,因为我希望它是一个百分比。我应该怎么做 ?

SELECT numC , sum(prix) as Cout_Tot , avg(Taux_remplissage) as MOY
FROM
(
SELECT P.numC , P.dateDep , C.prix  ,nbRes , nbPlaces , ( R.nbRes / 
P.nbPlaces) as Taux_remplissage
FROM lesProgrammations P
JOIN lesReservations R ON R.numC = P.numC AND R.dateDep = P.dateDep  
JOIN lesCircuits C ON P.numC = C.numC
ORDER BY P.numC , P.dateDep
)
GROUP BY numC
ORDER BY numC;

编辑:谢谢你的帮助!我找到了解决方案:)

avg(Taux_remplissage) * 100 / sum(Taux_remplissage) AS Taux_moy_remplissage
sql oracle subquery percentage
2个回答
0
投票

您不需要子查询:

SELECT numC, sum(prix) as Cout_Tot,
       (100 * avg(R.nbRes / P.nbPlaces)) as MOY
FROM lesProgrammations P JOIN
     lesReservations R
     ON R.numC = P.numC AND R.dateDep = P.dateDep JOIN 
     lesCircuits C
     ON P.numC = C.numC
GROUP BY numC
ORDER BY numC;

此外,ORDER BY不适合子查询。


1
投票

尝试下面只是乘以avg(Taux_remplissage)*100

SELECT numC , sum(prix) as Cout_Tot , avg(Taux_remplissage)*100 as MOY
FROM
(
SELECT P.numC , P.dateDep , C.prix  ,nbRes , nbPlaces , ( R.nbRes / 
P.nbPlaces) as Taux_remplissage
FROM lesProgrammations P
JOIN lesReservations R ON R.numC = P.numC AND R.dateDep = P.dateDep  
JOIN lesCircuits C ON P.numC = C.numC
ORDER BY P.numC , P.dateDep
)
GROUP BY numC
ORDER BY numC;
© www.soinside.com 2019 - 2024. All rights reserved.