我有一张表review
,如下所示:
review
--> stars (int)
--> business_id (varchar)
我想写一个查询,在给定business_id
的情况下,提取与此stars
对应的值为5
的{{1}}的数量,将它们相乘(数字)通过business_id
得到的恒星)并返回输出。
到目前为止,我有这个:
100
我收到语法错误:
错误:靠近“*”:语法错误。
我没有承诺。如果我选择不乘以SELECT Count(*)
FROM (SELECT stars
FROM review AS r
WHERE r.business_id = "OqKuUkYMCWShOHOspYLGZQ"
AND r.stars = "5") * 100;
,只返回值为100
的{{1}}的数量,那就是我这样做:
stars
效果很好。
我应该如何纠正我的语法,以便能够正确地繁殖?
请注意,5
只是一个随机SELECT Count(*)
FROM (SELECT stars
FROM review AS r
WHERE r.business_id = "OqKuUkYMCWShOHOspYLGZQ"
AND r.stars = "5")
。
答案 0 :(得分:1)
使用此查询:
DECLARE @table TABLE
(
stars INT,
business_Id VARCHAR(100)
)
INSERT INTO @table (stars, business_Id)
VALUES (5,'OqKuUkYMCWShOHOspYLGZQ')
INSERT INTO @table (stars, business_Id)
VALUES (5,'OqKuUkYMCWShOHOspYLGZQ')
select COUNT(stars) * 100
from @table
where business_id='OqKuUkYMCWShOHOspYLGZQ' and stars=5;
答案 1 :(得分:1)
您不是将数字乘以100,而是尝试与子查询返回的行相乘。 您可以尝试使用以下查询。希望它能帮到你
SELECT Count(*) * 100
FROM (SELECT stars
FROM review AS r
WHERE r.business_id = "OqKuUkYMCWShOHOspYLGZQ"
AND r.stars = "5")