gpt4 book ai didi

mysql - 如何将数据插入 Tempdb 直到满足不同值的数量

转载 作者:行者123 更新时间:2023-11-29 05:57:13 24 4
gpt4 key购买 nike

我有一个名为 tblorder 的主表。
它包含我关心的CUID(Customer ID)、CuName(Customer Name)和OrDate(Order Date)。它目前按 date 升序排列(例如 2002 年之前的 2001)。

目标:
尝试检索最近 100 万个 DISTINCT 客户的 CUIDCuNameS,并将它们InsertTempdb(# Recent1M) 供以后加入使用。

所以我:

  1. 需要按 desc 排序以翻转日期以检索最近的 100 万客户

  2. 只需要前 100 万个 DISTINCT 客户信息(CUID, CuName)

我知道下面的代码不正确,但这是主要思想。我只是想不出正确的语法。到目前为止,我将 While 循环与 Select Into 作为最合理的解决方案。

SQL 平台:SSMS

Declare @DC integer
Set @DC = Count(distinct(CUID)) from #Recent1M))
While (@DC <1000000)
Begin
Select CuID,CuName into #Recent1MCus from tblorder
End

非常感谢,感谢您的帮助!

最佳答案

TOP 1000000 是可行的方法,但您将需要一个 ORDER BY 子句,否则您将得到任意结果。在你的情况下,你提到你想要最新的,所以:

ORDER BY OrderDate DESC

此外,您可以考虑使用 GROUP BY 而不是 DISTINCT。我认为它看起来更简洁,并使选择列表保持为选择列表,因此您可以选择包括您可能想要的任何其他内容(正如我冒昧地做的那样)。请注意,由于分组,ORDER BY 现在使用 MAX(ordate),因为客户可能有多个 ordate,而我们对最新的感兴趣。所以:

select top 1000000 cuid, cuname, sum(order_value) as ca_ching, count(distinct(order_id)) as order_count
into #Recent1MCus
from tblorder
group by cuid, cuname
order by max(ordate) desc

希望对您有所帮助。

关于mysql - 如何将数据插入 Tempdb 直到满足不同值的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48351458/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com