我有一个场景,我必须根据日期选择特定数量的记录。例如:在8月15日,我只想在8月16日选择1000条记录和2000个客户,在8月17日选择5000个客户,以此类推....没有具体的订单,但必须这样做一个月。这些信息是静态的,不会改变,所以我创建了一个静态表,如下所示,我必须将其连接到另一个名为driver的表,以提取其他列,如余额,付款等。驱动表有近100万条记录,并且没有任何连接列连接到这个静态表,我想到使用时间戳列并从中提取日期并将其用作连接。我是一个最近通过和新的sql,所以请让我知道这是如何实现的。
静态表:
<表类>天 数 tbody><<tr>08/15 1000 08/162000 08/175000 08/189000 表类>
假设在第二个表中有一个日期,您将使用join
和row_number()
:
select d.*
from (select d.*,
row_number() over (partition by date order by date) as seqnum
from driver d
) d join
static s
on d.date = s.day
where seqnum <= s.count;