公司有很多评论,其中包含评级栏本身。
CompID Ratig
12 3
13 3
17 4
22 4
23 5
24 3
28 3,2
这是我需要通过id设置给每个公司的。 现在公司列中的评分为 NULL
。
我写过这样的话:
UPDATE Companies c
JOIN Reviews r on c.CompanyID = r.CompanyID
SET c.Rating = AVG(r.rating)
group by r.CompanyID
答案 0 :(得分:11)
这应该使用简单的嵌套查询来执行您想要的操作,在这种情况下可能比JOIN
更简单。
UPDATE Companies
SET Rating =
(SELECT AVG(Rating)
FROM Ratings
WHERE Companies.CompanyId = Ratings.CompId)
简单的SQLfiddle演示here。
编辑:如果确实想要使用JOIN
/ UPDATE FROM
,它看起来像这样;
UPDATE c
SET c.Rating = r.Rating
FROM Companies c
JOIN (SELECT AVG(Rating) Rating, CompID FROM Ratings GROUP BY CompId) r
ON c.CompanyId = r.CompId
至少对我来说,阅读有点复杂,而afaik只适用于SQL Server,但here's the SQLfiddle也适用于此:)
答案 1 :(得分:0)
checkFactor <- c("FP", "TP")
all(levels(a) %in% checkFactor)
#[1] TRUE
all(levels(b) %in% checkFactor)
#[1] TRUE
all(levels(c) %in% checkFactor)
#[1] FALSE