2015-10-07 41 views
0

乘以我有一個表review如下:語法錯誤,同時通過一個恆定在SQL

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

我想要寫的是,給定一個business_id的查詢時,提取的stars與值對應的數= 5business_id,他們(由此獲得星星的數量)乘以100並返回輸出。

到目前爲止,我有這樣的:

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

我得到一個語法錯誤:

Error: near "*": syntax error.

我不undertand。如果我選擇不100倍增,而只是價值= 5返回stars數量,即如果我做的:

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

它完美的作品。

我應該如何糾正我的語法,以便我可以正確乘法?

請注意,OqKuUkYMCWShOHOspYLGZQ只是一個隨機busines_id

+4

嘗試選擇COUNT(*)* 100 FROM ... – jac

+0

謝謝。這對我行得通! – tofu

+0

爲什麼有人會低估這一點?我剛剛開始學習sql,並且正在盡力理解它。 – tofu

回答

1

你是不是100而是你正試圖從子查詢返回的行乘乘號。 你可以嘗試下面的查詢。希望它可以幫助你

SELECT Count(*) * 100 
FROM (SELECT stars 
     FROM review AS r 
     WHERE r.business_id = "OqKuUkYMCWShOHOspYLGZQ" 
       AND r.stars = "5") 
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;