首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Case when in Rank partition By

Case when in Rank partition By
EN

Stack Overflow用户
提问于 2019-08-03 04:53:55
回答 1查看 107关注 0票数 0

我一直在重新学习SQL,但我不确定这段代码是否可以完成。有没有人能就这个案例提供反馈或替代方案?

总而言之,我正在调查同一天、不同时间、同一用户之间提交的订单之间的任何重复。

我在想第二步,我会对他们进行排名,看看是否还有基于时间和日期的另一行,排在第二位?

代码语言:javascript
复制
Select * ( including orderDate) 
RANK() OVER(PARTITION BY
Customer,
case 
when (Orderstart(Datetimestamp) > OrderEnd(Datetimestamp) and OrderEnd<Orderstart ) AS Rank_Items

From FirstStep

这只是将所有的东西都排到了500+的级别。

样本数据

期望的结果:

EN

回答 1

Stack Overflow用户

发布于 2019-08-03 04:56:47

我将使用row_number()来识别同一客户在同一日期的多个订单:

代码语言:javascript
复制
row_number() over (partition by customer, cast(orderdatetime as date) order by orderdatetime)

到目前为止的转换可能会因数据库而异。

这枚举了客户在给定日期的订单,这似乎就是您想要完成的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57333316

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档