我想根据SQL Server 2008中特定列值的最大值来选择行。我需要根据最大版本选择书名和年份。如何根据特定列的最大值选择行?
当前表中的数据:
BookName Year Edition
Latest Science 2013 1
Latest Science 2014 2
Latest Science 2015 3
Easy Maths 2014 1
Easy Maths 2015 2
Magic vs Logic 2015 1
输出应该是:
BookName Year Edition
Latest Science 2015 3
Easy Maths 2015 2
Magic vs Logics 2015 1
我试过,但它导致只有一个行整个表的
SELECT Book, year, edition
FROM Book_info
where edition=(select max(edition) from book_info)
感谢@ chdev77,按真是帮了我。 –
但是我面临一个错误,如果我使用显示BookName的年份。 year在选择列表中是无效的,因为它不包含在聚合函数或GROUP BY子句中。在这里,我找到了我的问题的答案,但我想知道如何显示相应的一年, SELECT BookName,MAX(Edition)AS Edition FROM Book_info AS Book_info_1 GROUP BY BookName order by Edition –
Thanks @ chdev77,Its works就像魅力一样,我想再多一次我不想显示年份的最大值,但我需要显示最大版本的相应年份。 –