我有一个表review
如下:
review
--> stars (int)
--> business_id (varchar)
我想写一个查询,给定一个business_id
,提取与这个business_id
对应的value= 5
的stars
数,将它们(由此获得的星数)乘以100
并返回输出。
到目前为止我有这样的想法:
SELECT Count(*)
FROM (SELECT stars
FROM review AS r
WHERE r.business_id = "OqKuUkYMCWShOHOspYLGZQ"
AND r.stars = "5") * 100;
我得到一个语法错误:
错误:接近"*":语法错误。
我不明白。如果我选择不乘以100
,只返回stars
的个数和value=5
,那么如果我这样做的话:
SELECT Count(*)
FROM (SELECT stars
FROM review AS r
WHERE r.business_id = "OqKuUkYMCWShOHOspYLGZQ"
AND r.stars = "5")
它工作得很完美。
我应该如何纠正我的语法,以使我可以正确地乘?
注意,OqKuUkYMCWShOHOspYLGZQ
只是一个随机的busines_id
。
发布于 2015-10-06 20:04:05
您不是将数字与100相乘,而是尝试用子查询返回的行进行乘。您可以尝试使用下面的查询。希望它对你有帮助
SELECT Count(*) * 100
FROM (SELECT stars
FROM review AS r
WHERE r.business_id = "OqKuUkYMCWShOHOspYLGZQ"
AND r.stars = "5")
发布于 2015-10-06 19:35:18
使用此查询:
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;
https://stackoverflow.com/questions/32983256
复制相似问题