计算查询中相同SELECT的百分比
Calculate the percentage in the same SELECT in a query
我正在尝试计算 SQL 数据库中 table 查询中相同 SELECT 的百分比。
在下面的table中,第3列的功能是取第2列的总和*** (15973,1748209 + 1947,18266487 = 17830,35749) *** 除以相应行的值(在第 1 行的情况下,它除以 15913,1748209),但我仍然不能,有人可以帮助我吗?非常感谢您
SELECT
Tab_Dados_Escolha.Parametro,
Sum(Tab_Dados_Escolha.Metrica) As Metrica,
Sum(Tab_Dados_Escolha.Metrica) / < % total % > As Porcentagem
FROM
Tab_Dados_Escolha
WHERE
(
Tab_Dados_Escolha.E3TimeStamp >= #<%inicio%>#
AND Tab_Dados_Escolha.E3TimeStamp <= #<%fim%>#
)
GROUP BY
Tab_Dados_Escolha.Parametro
我认为您想使用sum() over ()
window功能。
SELECT Tab_Dados_Escolha.Parametro
, SUM(Tab_Dados_Escolha.Metrica) AS Metrica
, SUM(Tab_Dados_Escolha.Metrica)/SUM(Tab_Dados_Escolha.Metrica) OVER (PARTITION BY Tab_Dados_Escolha.Parametro) AS Porcentagem
FROM Tab_Dados_Escolha
WHERE (Tab_Dados_Escolha.E3TimeStamp >= #<%inicio%># AND Tab_Dados_Escolha.E3TimeStamp <= #<%fim%>#)
GROUP BY Tab_Dados_Escolha.Parametro;
以下是使用 window 函数的方法:
SELECT
Tab_Dados_Escolha.Parametro,
sum(Tab_Dados_Escolha.Metrica) As Metrica,
sum(Tab_Dados_Escolha.Metrica) * 100.0 / sum(sum(Tab_Dados_Escolha.Metrica)) over() As Porcentagem
FROM Tab_Dados_Escolha
WHERE
Tab_Dados_Escolha.E3TimeStamp >= #<%inicio%>#
AND Tab_Dados_Escolha.E3TimeStamp <= #<%fim%>#
GROUP BY Tab_Dados_Escolha.Parametro
我正在尝试计算 SQL 数据库中 table 查询中相同 SELECT 的百分比。
在下面的table中,第3列的功能是取第2列的总和*** (15973,1748209 + 1947,18266487 = 17830,35749) *** 除以相应行的值(在第 1 行的情况下,它除以 15913,1748209),但我仍然不能,有人可以帮助我吗?非常感谢您
SELECT
Tab_Dados_Escolha.Parametro,
Sum(Tab_Dados_Escolha.Metrica) As Metrica,
Sum(Tab_Dados_Escolha.Metrica) / < % total % > As Porcentagem
FROM
Tab_Dados_Escolha
WHERE
(
Tab_Dados_Escolha.E3TimeStamp >= #<%inicio%>#
AND Tab_Dados_Escolha.E3TimeStamp <= #<%fim%>#
)
GROUP BY
Tab_Dados_Escolha.Parametro
我认为您想使用sum() over ()
window功能。
SELECT Tab_Dados_Escolha.Parametro
, SUM(Tab_Dados_Escolha.Metrica) AS Metrica
, SUM(Tab_Dados_Escolha.Metrica)/SUM(Tab_Dados_Escolha.Metrica) OVER (PARTITION BY Tab_Dados_Escolha.Parametro) AS Porcentagem
FROM Tab_Dados_Escolha
WHERE (Tab_Dados_Escolha.E3TimeStamp >= #<%inicio%># AND Tab_Dados_Escolha.E3TimeStamp <= #<%fim%>#)
GROUP BY Tab_Dados_Escolha.Parametro;
以下是使用 window 函数的方法:
SELECT
Tab_Dados_Escolha.Parametro,
sum(Tab_Dados_Escolha.Metrica) As Metrica,
sum(Tab_Dados_Escolha.Metrica) * 100.0 / sum(sum(Tab_Dados_Escolha.Metrica)) over() As Porcentagem
FROM Tab_Dados_Escolha
WHERE
Tab_Dados_Escolha.E3TimeStamp >= #<%inicio%>#
AND Tab_Dados_Escolha.E3TimeStamp <= #<%fim%>#
GROUP BY Tab_Dados_Escolha.Parametro