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    |   

私は次のORDERBYを持つselectを持っています:

 ORDER BY FamilyCode, DateUploaded desc

これにより、結果が効果的にファミリにグループ化され、ファミリの要素がDateReceivedによって並べ替えられるように結果が並べ替えられます。ただし、現在必要なのは順番に表示するファミリであるため、最新のDateReceivedを持つファミリが一番上になります。

誰かが私がこれを達成する方法を知っていますか?

説明を追加することを提案してくれた人に感謝します。私は実際にこれを手に入れましたが、私が後を追うことは望んでいません。

上記の表では、すべての結果を次のように返します。

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

最新の日付に基づいて、すべての家族を一緒にしたいのではないかと思います。これを行うには、各ファミリーの最大アップロード日を追加する必要があります。1 つの方法を次に示します。

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

降順を使用

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