首页 > 解决方案 > 在 Postgres 中转换为 Float 2 dp

问题描述

我正在尝试将 average_salary 和 total_salary 转换为浮点数 2 位小数,但我不断收到错误消息。我这样做正确吗?

错误:Test Failedexpected 2 to be a kind of Float

SELECT 
  j.job_title,
  SUM(j.salary)/COUNT(p.id)::float, 2 AS average_salary,
  COUNT(p.id) AS total_people,
  SUM(j.salary):: float, 2 AS total_salary
  FROM job j
    JOIN people p
    ON p.id = j.people_id
  GROUP BY j.job_title
  ORDER BY total_salary DESC
  LIMIT 100

标签: sqlpostgresql

解决方案


试试这个:

SELECT j.job_title,
  ROUND (AVG(j.salary), 2) ::FLOAT average_salary,
  COUNT(p.id) total_people ,
  ROUND (SUM(j.salary), 2) ::FLOAT total_salary
FROM people p
LEFT OUTER JOIN job j
ON (p.id = j.people_id)
GROUP BY j.job_title
ORDER BY average_salary DESC

推荐阅读