小编Mag*_*Liu的帖子

对于所有评论者对,使得两个评论者都对同一部电影进行评分,返回两个评论者的姓名

斯坦福 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 不能与问题相同的条件是“不要将评论者与自己配对,并且每对仅包含一次 …

sql sqlite

4
推荐指数
1
解决办法
2973
查看次数

将数据类型更改为浮点型并四舍五入到小数点后两位

表格:

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)

sql postgresql types casting average

2
推荐指数
1
解决办法
2万
查看次数

标签 统计

sql ×2

average ×1

casting ×1

postgresql ×1

sqlite ×1

types ×1