开发者社区> 问答> 正文

如何有效地将数据从多个记录中拉到1条记录中

我目前在与交易相关的表中有数据。每个记录都有一个购买ID,一个交易号以及最多分配给该交易的5个购买。每次购买最多可以进行10次交易。对于每次购买的第一笔交易,我需要一个字段,该字段是串联的每个唯一购买的字符串。我的解决方案很慢,我估计需要40天才能完成。什么是最有效的方法?

展开
收起
祖安文状元 2020-01-03 15:44:15 521 0
1 条回答
写回答
取消 提交回答
  • 您要寻找的东西可以通过两个步骤实现:

    步骤1:提取每次购买的第一笔交易

    根据您的表配置,这可以通过几种不同的方式完成。

    如果您的交易ID是连续的,则可以使用以下方法:

    select * from table a
    inner join 
    (select purchaseid,min(transactionid) as transactionid 
    from table group by purchaseid) b 
    on a.purchaseid-b.purchaseid and a.transactionid=b.transactionid
    
    如果存在日期变量来驱动交易顺序,则:
    ```js
    select a.* from
    (select *,row_number() over(partition by purchaseid order by date) as rownum from table)a 
    where a.rownum=1
    
    
    2020-01-03 15:45:22
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载