Quelqu'un peut-il s'il vous plaît aidez-moi à trouver ce qui suit à l'aide d'un oracle sql danssql oracle pour trouver le rapport avec le regroupement par une colonne
Input in oracle TableX --
ColumnA |ColumnB
1 |20
1 |10
1 |30
2 |10
2 |30
3 |20
-- Desired result
ColumnA |ColumnB |Ratio
1 |20 |0.333333333
1 |10 |0.166666667
1 |30 |0.5
2 |10 |0.25
2 |30 |0.75
3 |20 |1
SELECT
ColumnA,
ColumnB,
ColumnA/sum(ColumnB) group ColumnA by as Ratio
FROM
TableX
GROUP BY
ColumnA
ORDER BY
ColumnA
Je ne peux pas comprendre comment calculer le pourcentage dans le GROUP BY
+++++++++
Explication:
essayer d'obtenir le rapport en regroupant COLUMNA
les résultats du premier rang est une groupement de ColumnA comme 20/(20 + 10 + 30) = 0,333333333
Groupement de deux ColumnA 10/(10 + 30) = 0,25
dernier résultat de la ligne de regroupement 3 à partir de ColumnA est comme 20/20 = 1
Hence the sum of 0.333333333+0.166666667+0.5 = 1
sum of 0.25 + 0.75 = 1
sum of 1+0 = 1
révisée SELECT ColumnA, ColumnB, ColumnB/somme (ColumnB) par groupe ColumnA comme Ratio DE TableX GROUP BY ColumnA ORDER BY ColumnA – user2292524