我真的需要你的帮助。我必须通过一些特定的顺序从SQL表中获取一些数据。所有数据都应按KeyID
降序排序,但如果第二列中有一些行具有相同数据,则必须用其他行分隔。
例如,我们有这样的表:
KeyID UserID
1 15
2 17
3 19
4 19
5 15
6 17
7 17
在结果表中,它应该是
KeyID UserID
7 17
5 15
6 17
4 19
2 17
3 19
1 15
有没有办法做到这一点?
答案 0 :(得分:1)
这不会产生你想要的那种,但它应该分散出来的关键词:
order by row_number() over (partition by userId order by keyid desc),
keyid desc
答案 1 :(得分:0)
这应该适用于最多2个连续记录共享相同Rx.Observable.merge(
Rx.Observable.just(1),
Rx.Observable.just(1).delay(1000)
).distinctUntilChanged(1000)
.subscribe(x => console.log(x))
的简单情况:
distinctUntilChanged()
答案 2 :(得分:0)
以下查询可以正常工作。
WITH TEMP AS(
SELECT *,
ROW_NUMBER() OVER(PARTITION BY USERID ORDER BY KEYID DESC)ROW,
ROW_NUMBER()OVER(ORDER BY KEYID DESC)ROW1
FROM USERS
)
SELECT KEYID,USERID
FROM (
SELECT KEYID,USERID,ROW1,ROW FROM TEMP
WHERE ROW<>2
UNION
SELECT KEYID,USERID,ROW1+1 ROW1, ROW FROM TEMP
WHERE ROW=2
)B
ORDER BY ROW1 ASC