再对area和area_percentage保留4位小数呢
时间: 2023-10-13 07:54:57 浏览: 70
oracle保留两位小数解决方案
若您想要对 `area` 和 `area_percentage` 保留四位小数,可以使用 `ROUND()` 函数对这些列进行舍入。以下是修改后的SQL查询语句:
```sql
WITH risk_levels AS (
SELECT
CASE
WHEN gn.djz = 1 THEN '高风险'
WHEN gn.djz = 2 THEN '中高风险'
WHEN gn.djz = 3 THEN '中风险'
WHEN gn.djz = 4 THEN '中低风险'
WHEN gn.djz = 5 THEN '低风险'
END AS risk_level,
ROUND(SUM(ds.shape_area), 4) AS area
FROM
geo_nyghzhfxqh gn
JOIN
dcpj.st_county ds ON CONCAT(gn.adcd, '000') = ds.adcd
GROUP BY
gn.djz
)
SELECT
risk_level,
area,
ROUND(area / SUM(area) OVER (), 4) AS area_percentage
FROM
risk_levels
ORDER BY
CASE risk_level
WHEN '高风险' THEN 1
WHEN '中高风险' THEN 2
WHEN '中风险' THEN 3
WHEN '中低风险' THEN 4
WHEN '低风险' THEN 5
ELSE 99
END ASC;
```
在上面的查询中,我在 `risk_levels` CTE 中使用 `ROUND()` 函数来保留 `area` 列的四位小数。在最终的查询结果中,我也使用 `ROUND()` 函数来保留 `area_percentage` 列的四位小数。您可以执行这个查询来获得保留四位小数的面积和面积占比结果。
阅读全文