在 sql 中乘以常量时出现语法错误
Syntax error while multiplying by a constant in sql
我有一个tablereview
如下:
review
--> stars (int)
--> business_id (varchar)
我想编写一个查询,给定一个 business_id
,提取与此 business_id
相对应的值为 5
的 stars
的数量,将它们相乘( 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")
我有一个tablereview
如下:
review
--> stars (int)
--> business_id (varchar)
我想编写一个查询,给定一个 business_id
,提取与此 business_id
相对应的值为 5
的 stars
的数量,将它们相乘( 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")