【发布时间】:2013-01-23 10:37:18
【问题描述】:
我有这张桌子
Id_User Id_Subscription Date_Expiration
1 1 2013-01-21
1 2 2013-01-28
2 1 2013-01-15
2 2 2013-01-30
2 3 2013-01-31
我想按距离 desc 对距 getdate 最小距离的用户进行排序(无论 Id_Subscription 是多少)。示例:
Position Id_User Distance in day
1 2 7
2 1 2
我已经尝试过这样做
SELECT ROW_NUMBER() OVER(ORDER BY COALESCE(MIN(us.Date_Expiration), CAST('2015-01-29 16:30:23.000' AS DATE)) DESC, us.id_user) AS Row, us.id_user FROM User_Subscription us GROUP BY a.Id_Anagrafica
但它不正确。
【问题讨论】:
-
我猜表的最后两行是重复的?或者他们是必需的?
-
这是一个错误,我已经纠正了
-
我认为 userId (2) 最大距离应该是 8,我不确定你是如何得到 userId(1) 最大距离 2。我认为应该是 5?
-
对不起,我犯了错误。我想要从 Date_Expiration 的最小距离按距离 desc 排序
标签: sql date sql-order-by date-range