我在这里面临一个问题(使用SQL Server 2005)。如何按比所选列更少的列进行分组
我SELECT
查询看起来是这样的:
SELECT
a.str_column1, b.str_column2, c.date_column3, c.guid_column4
FROM table
....
joining the other tables here to get my columns
....
GROUP BY
a.str_column1, b.str_column2, c.date_column3, c.guid_column4
这将给像这样
a.str_column1 b.str_column2 c.date_column3 c.guid_column4
------------------------------------------------------------------
a1 b1 15/07/2013 someID
a2 b2 05/06/2012 someID
a1 b1 07/08/2013 someID
....
现在我想,这样它是由a.str_column1
和b.str_column2
分组,只得到最近的一次( order by c.dat_column3
)
a.str_column1 b.str_column2 c.date_column3 c.guid_column4
------------------------------------------------------------------
a1 b1 07/08/2013 someID
a2 b2 05/06/2012 someID
任何想法如何用SQL来完成这个任务?
我喜欢这个答案。我从来没有必要使用'OVER' /'PARTITION BY',是否有一个网站,你可以推荐读入或只是去MSDN描述? – seph
@seph - MSDN页面是我通常将人们链接到的。 –