私は、著者が書いた最大数量と、各著者が書いた数量の差を求めたいと思います。MAXとCountの間の差し引き
SELECT count(book_name) contar, (MAX(C.qty) - count(book_name)) final
FROM (select B.author_id, count(book_name) qty
FROM author A ,BOOK B
WHERE A.author_id = B.author_id
GROUP BY b.author_id) C ,
author A,
BOOK B
WHERE A.author_id = B.author_id
AND B.author_id=C.Author_id
AND date_release BETWEEN NOW() - INTERVAL 20 YEAR AND NOW()
GROUP BY c.author_id
HAVING contar > 0
あなたがbook_id
、author_id
、book_name
、date_release
、およびテーブルAUTHOR
author_id
、author_name
、author_lastname
、date_birth
を持っている二つのテーブルBOOK
があります見ての通り。
私はこれが
をもたらしそうだ。しかし、私は
--------+-------+--+
| contar | final | |
+--------+-------+--+
| 1 | -4 | |
| 2 | -3 | |
| 5 | 0 | |
| 1 | -4 | |
+--------+-------+--+
メインクエリで過去20年間の書籍数のみがカウントされますが、サブクエリですべての書籍がカウントされるのは正しいですか? – Barmar
明示的なJOINの使用を促進するために、Aaron Bertrandは素敵な記事[古いスタイルのJOINを使用する悪い習慣](http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/)を書きました。それについての悪い習慣から蹴りを使う古いスタイルの結合.aspx)。 –
Macの量がどのくらいあるのか説明できますか?総量は意味がありますが、最大値は意味しません。 –