1

我有一个类似于以下的表结构:

ID  |DateUploaded|FamilyCode|
1   |01/01/2010  |FC0001    |
2   |01/01/2011  |FC0001    |
3   |01/01/2012  |FC0001    |
4   |01/08/2012  |FC0002    |
5   |01/01/2012  |FC0002    |
6   |01/08/2012  |FC0002    |
7   |01/01/2012  |FC0002    |
8   |01/08/2012  |FC0003    |
9   |01/07/2012  |FC0003    |   

我有一个选择,它具有以下 ORDER BY:

 ORDER BY FamilyCode, DateUploaded desc

这会对结果进行排序,以便将它们有效地分组到族中,并且族的元素按 DateReceived 排序。然而,现在需要的是按顺序显示的家庭,因此最近 DateReceived 的家庭排在最前面。

有谁知道我怎么能做到这一点?

感谢任何建议在其中添加 desc 的人,我实际上已经得到了这个,但这不是我想要的。

在上表中,我希望所有结果返回为:

ID  |DateUploaded|FamilyCode|
4   |01/08/2012  |FC0002    |
6   |01/07/2012  |FC0002    |
5   |01/01/2012  |FC0002    |
7   |01/01/2012  |FC0002    |
8   |01/08/2012  |FC0003    |
9   |01/07/2012  |FC0003    |
3   |01/01/2012  |FC0001    |
2   |01/01/2011  |FC0001    | 
1   |01/01/2010  |FC0001    |

因此,结果被分组到族中,最新上传日期的族在顶部,组内的结果按日期排序。

4

3 回答 3

2

根据最近的日期,我怀疑您希望所有家庭聚在一起。为此,您需要添加为每个家庭上传的最大日期。这是一种方法:

select FamilyCode, DateUploaded, . . .
from (select t.*,
             max(DateUploaded) over (parition by FamilyCode) as maxDateUploaded
      from t
     ) t
order by maxDateUploaded, FamilyCode

请注意,order by 仍然包括 FamilyCode。这很重要,因为多个家庭可能共享相同的最大日期,而您仍然希望将这些家庭组合在一起。

于 2012-11-21T14:40:09.903 回答
0
ORDER BY FamilyCode, DateUploaded DESC
于 2012-11-21T13:05:45.060 回答
0

按 desc 使用顺序

order by dateuploaded desc,familycode
于 2012-11-21T13:06:05.020 回答