我正在使用Oracle10.g。我有一个表LIB_BOOK,其中包含图书馆中的书籍清单。许多书籍有多本。我想制作一份报告,列出所有书籍,其中不止一份。我已经构造了一个查询,其中列出了这些书,但是我找不到一种只获得一行结果的方法。
Select
title
, copy_number
, isbn_10
, category
, book_pk
, max(copy_number)
From LIB_BOOK
Group by
title
, copy_number
, isbn_10
, category
, book_pk
Order by copy_number desc
;
正如您在下面的数据结果中看到的,我获得了列出七次的“与上帝的对话-书1”的结果。我希望该书仅被列出一次,且copy_number为“ 7”。
我获取了查询结果的前32行,将其导出到Excel并粘贴了下面的图像。
如何构造查询以使每本书仅排一行,并避免只包含一个副本(copy_number> 1)的书籍?感谢您的关注。
尝试这个
Select
title
, copy_number
, isbn_10
, category
, book_pk
, copy_number
From LIB_BOOK lib
join (select title,max(copy_number) as maxcopynumber
from LIB_BOOK group by title) maxcopy on lib.title = maxcopy.title and lib.copy_number = maxcopy.maxcopynumber
Order by lib.copy_number desc
;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句