次のコードは、私が望むのとまったく同じ方法で動作します。今は同じタスクを達成する必要がありますが、結果はCOUNTが1より大きい場合にのみ表示されます。COUNTは、割り当てテーブル内の行ごとに異なる書籍ID(入札単価)を数えます。集計関数を使用したWHERE文を使用したSQL
Prompt Task 1E7;
SELECT B.bid,title,COUNT(*)
FROM ALLOCATION A
INNER JOIN BOOK B
ON A.bid = B.bid
GROUP BY B.bid,title
ORDER BY COUNT(*),bid;
私はいくつかの異なる場所にWHERE COUNT(*)> 1を置いてみました。これはちょうどWHERE行の "SQLコマンドが正しく終了していません"というエラーを返します。私はまた、次のことを試みました。
Prompt Task 1E7;
SELECT B.bid,title,COUNT(*)
FROM ALLOCATION A
INNER JOIN BOOK B
ON A.bid = B.bid
GROUP BY B.bid,title
WHERE (SELECT COUNT(*)
FROM ALLOCATION A
INNER JOIN BOOK B
ON A.bid = B.bid
GROUP BY B.bid,title) > 1
ORDER BY COUNT(*),bid;
など、いくつかの小さな調整があります。
group byを使用すると、通常は 'where'ではなく' having'を使用します。違いを見てください。 –