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

Syntax error while multiplying by a constant in sql

我有一个tablereview如下:

review
--> stars           (int) 
--> business_id     (varchar)

我想编写一个查询,给定一个 business_id,提取与此 business_id 相对应的值为 5stars 的数量,将它们相乘( 100 和 return 的输出。

到目前为止我有这个:

SELECT Count(*)
FROM   (SELECT stars
        FROM   review AS r
        WHERE  r.business_id = "OqKuUkYMCWShOHOspYLGZQ"
               AND r.stars = "5") * 100;

我收到一个语法错误:

Error: near "*": syntax error.

我不明白。如果我选择不乘以 100,而只是 return 的 stars 的数量与值 =5,那就是如果我这样做:

SELECT Count(*)
FROM   (SELECT stars
        FROM   review AS r
        WHERE  r.business_id = "OqKuUkYMCWShOHOspYLGZQ"
               AND r.stars = "5")

它完美运行。

我应该如何更正语法才能正确乘法?

请注意 OqKuUkYMCWShOHOspYLGZQ 只是一个随机的 busines_id

使用这个查询:

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;

您不是在将数字与 100 相乘,而是在尝试与从子查询返回的行相乘。 您可以尝试使用以下查询。希望对你有帮助

SELECT Count(*) * 100
FROM   (SELECT stars
        FROM   review AS r
        WHERE  r.business_id = "OqKuUkYMCWShOHOspYLGZQ"
               AND r.stars = "5")