我要写一个查询,正在考虑是否有人可以帮助我。请查看所附图片,同时让我简要介绍一下我的要求。
在表1 中,我们每个用户每天最多可以有4条记录,最少2条记录。如果用户有4条记录,则当天 Table1 中的FirstRecord将转到 Table2 中的 Time1 列,第二秒将变为 Time2 等。如果用户每天有2条记录,则当天的第一条记录将转到 Table2 中的 Time2 列,第二条记录将进入 Time3 列。作为参考,随附了表格屏幕截图。
任何有用的链接或查询都将受到赞赏
答案 0 :(得分:0)
使用ROW_NUMBER()并按UserID
进行分区,按TransactionDate
进行排序,以为每个用户生成数字1-4或1-2。
然后将带有四个CASE表达式的表插入到表2中。
CASE将检查子查询以获取该用户的MAX(RowNumber),然后根据您针对两种情况给出的逻辑从表1中选择适当的行。