SQL 行总和中每个值的百分比

SQL Percentage of each values from sum of row

我正在尝试从此查询中获取每个值的百分比。我知道这个问题可能重复,但我无法解决它。

SELECT SUM(distance) AS SUM_DISTANCE FROM table1 GROUP BY type

它给了我这个:

+------------------+
|   SUM_DISTANCE   |
+------------------+
| 60159.7965819000 |
|   289.0123500000 |
| 34660.5349672000 |
+------------------+

我想得到的是:

+-----------------+
| PercentDistance |
+-----------------+
|           63,25 |
|            0,30 |
|           36,44 |
+-----------------+

这是我的尝试:

WITH Total AS
    (SELECT SUM(distance) AS SUM_DISTANCE FROM table GROUP BY type)
select
    (total.SUM_DISTANCE / sum(distance)) * 100 AS PercentDistance
FROM table1, Total
GROUP BY Total.SUM_DISTANCE;

这是我尝试的结果:

+-----------------+
| PercentDistance |
+-----------------+
|        0.001300 |
|        0.159900 |
|        0.277600 |
+-----------------+

使用window函数:

SELECT CAST(100 * SUM(distance) / SUM(SUM(distance)) OVER () AS DECIMAL(5, 2)) AS percentage
FROM table1
GROUP BY type;
SELECT
    SUM(distance) / (SELECT SUM(distance) FROM table1) AS SUM_DISTANCE
FROM table1
GROUP BY type