斯坦福 SQL 问题自定进度课程:
对于所有评论者对,例如两位评论者都对同一部电影进行评分,请返回两位评论者的姓名。消除重复,不要将审阅者与自己配对,并且每对仅包含一次。对于每一对,按字母顺序返回该对中的名称。
架构:
Movie ( mID, title, year, director )
Run Code Online (Sandbox Code Playgroud)
有一部电影,ID 号为 mID、片名、上映年份和导演。
Reviewer ( rID, name )
Run Code Online (Sandbox Code Playgroud)
ID号为rID的审稿人有一定的姓名。
Rating ( rID, mID, stars, ratingDate )
Run Code Online (Sandbox Code Playgroud)
评论者 rID 在某个 ratingDate 为电影 mID 给出了多个星级评分 (1-5)。
我的尝试:
Select R.Name, R2.Name
From Reviewer R
Join Reviewer R2 on (R.rID = R2.rID)
Join Rating Rt on (Rt.rID = R2.rID)
Join Rating Rt2 on (Rt2.rID = R.rID)
Where Rt.MID = Rt2.mID and R.rID < r2.rID
Run Code Online (Sandbox Code Playgroud)
我知道我需要一个包含 2 个审阅者姓名列和 2 个电影列的表。我应用了条件,以便电影必须彼此相等,并且 ID 不能与问题相同的条件是“不要将评论者与自己配对,并且每对仅包含一次 …
表格:
people(id, name)
job (id, people_id, job_title, salary)
Run Code Online (Sandbox Code Playgroud)
目标:显示每个独特的工作、总平均工资(浮动并四舍五入到小数点后两位)、总人数和总工资(浮动并四舍五入到小数点后两位)并按最高平均工资排序。
因此,挑战在于将转换类型保持为 float,同时将其四舍五入到小数点后两位。
我已经将其四舍五入到小数点后两位,但它不是浮动的。我已经把它弄到了浮动的位置,但我无法将其四舍五入到小数点后两位。
我的尝试:
尝试1:
SELECT
distinct(j.job_title) as job_title,
to_char(AVG(j.salary)::FLOAT, 'FM999999990.00') as average_salary,
COUNT(p.id) as total_people,
CAST (SUM(j.salary) AS FLOAT) as total_salary
FROM people p
JOIN job j on p.id = j.people_id
GROUP BY j.job_title
ORDER BY total_salary
Run Code Online (Sandbox Code Playgroud)
问题:仍然说它不是浮动的
尝试2:
SELECT
distinct(j.job_title) as job_title,
CAST (AVG(j.salary) AS FLOAT) as average_salary,
COUNT(p.id) as total_people,
CAST (SUM(j.salary) AS FLOAT) as total_salary
FROM people p
JOIN job j on …Run Code Online (Sandbox Code Playgroud)