在sql中乘以常量时出现语法错误

时间:2015-10-07 03:22:15

标签: sql count syntax-error

我有一张表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")

2 个答案:

答案 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")