2017-01-29 11 views
0

WHERE文を追加するたびにクエリが失敗します。私の質問に何が間違っていますか?私はMySQL Workbench 3.7を使用していますSQL結果をフィルタリングしないWHERE

SELECT c.name, COUNT(DISTINCT s.product_id) AS veggies 
FROM sales AS s 
INNER JOIN customers AS c 
ON c.id=s.customer_id 
GROUP BY s.customer_id 
WHERE veggies > 2" 

ありがとう! ヨニが

+0

クエリは構文 – Strawberry

答えて

-1

はないWHEREGROUP BYHAVINGを使用する必要があります。これらの2行を交換することにより、これがうまくいけば動作します

SELECT c.name, COUNT(DISTINCT s.product_id) AS veggies' 
FROM sales AS s 
INNER JOIN customers AS c 
ON c.id=s.customer_id 
WHERE veggies > "2" 
GROUP BY s.customer_id 

(このリンクをクリックすると、という回答ページがかかります)。

GROUP BY s.customer_id 
WHERE veggies > "2" 

GROUP BYは常にWHEREの後に続きます。

これに加えて、ここでは2周桁の引用符がありません。

WHERE veggies > 2" 

最初の行の末尾に不要な一重引用符( ')があります。

+0

に準拠していなければなりませんdownvoterコメントを残してください –

2

wherehaving次のようになります。

SELECT c.name, COUNT(DISTINCT s.product_id) AS veggies 
FROM sales s INNER JOIN 
    customers c 
    ON c.id = s.customer_id 
GROUP BY s.customer_id 
HAVING veggies > 2; 

どちらのクエリに構文エラーが発生した(すなわち、実行されなかった)か、それがGROUP BYで停止し、WHEREを無視していました。

SELECT 
    c.name, COUNT(DISTINCT s.product_id) AS veggies 
FROM 
    sales AS s 
    INNER JOIN customers AS c ON c.id = s.customer_id 
GROUP BY 
    s.customer_id 
HAVING 
    veggies > 2 
関連する問題