這個問題,我發現是驅使我堅果,(編輯:),因爲我試圖達到這個沒有順序的方法。 我有一個表:max()的價值從嵌套選擇沒有ORDER BY
BookAuthors(書作者)
book author
------ ---------
1 Joy McBean
2 Marti McFly
2 Joahnn Strauss
2 Steven Spoilberg
1 Quentin Toronto
3 Dr E. Brown
兩個,書籍和作家,是關鍵。
現在我想選擇不同「作者」的最高數量和作者數量的「書」值。 在我們的例子中,查詢應該檢索3本作者的'book'2。
book authors
-------- ------------
2 3
我已經能夠將它們分組,並獲得作家的數量爲每本書與此查詢:
select B.book, count(B.author) as authors
from BookAuthors B
group by B.book
這將導致:
book authors
-------- -------------
1 2
2 3
3 1
現在我只想獲得作者人數最多的書。 這是我試過的一個查詢:
select Na.libro, Na.authors from (
select B.book, count(B.author) as authors
from BookAuthors B
group by B.book
) as Na
where Na.authors in (select max(authors) from Na)
和
select Na.libro, Na.authors from (
select B.book, count(B.author) as authors
from BookAuthors B
group by B.book
) as Na
having max(Na.authors)
我有點掙扎......
謝謝您的幫助。
編輯: 因爲@Sebas是那種答辯權和擴大我的問題,這裏是解決方案使用CREATE VIEW方法來我的腦海:
create view auth as
select A.book, count(A.author)
from BooksAuthors A
group by A.book
;
然後
select B.book, B.nAuthors
from auth B
where B.nAuthors = (select max(nAuthors)
from auth)
嗨!這不是爲了這個問題的目的,但我很好奇現在看到它! – Edoardoo
b.book還沒有定義 – Edoardoo
@Edoardoo我糾正了tipo。告訴我它是否有效 – Sebas