SQLalchemy:列值组合的所有排列的量子数

2024-09-27 00:13:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我们有一个sqlserver查询,在这个查询中,我们需要为越来越多的变量生成ntile,这样这些变量就可以按照不同的排列组合在一起。以下是我的意思:

声明1:

ntile(10) over (partition by  MAUorALL, User_Type, fsi.Month_ID 
                    order by Objects_Created) AS Ntile_Mon_Objects_Created,

声明2:

^{pr2}$

声明3:

ntile(10) over (partition by  MAUorALL, User_Type, fsi.Month_ID, *User*_Type
                 order by Objects_Created) AS Ntile_UT_Objects_Created

您可以看到,除了在第二和第三个语句中创建了斜体列“country”和“user type”之外,这些语句都是相同的。因此,我们对同一个变量“Objects_Created”在不同的特异性级别上取n,我们还必须对这些变量的各种可能的排列取n,例如:

声明4:

ntile(10) over (partition by  MAUorALL, User_Type, fsi.Month_ID, *Country, User_Type*
            order by Objects_Created) AS Ntile_Country_UT_Objects_Created

我们可以手动对这些排列进行编码,但是如果我们可以使用sqlalchemy来执行这些变量的所有排列,那么事情可能会变得更简单。有没有人能给我举个例子?在

谢谢你的帮助!在


Tags: id声明byobjectsastypeorderover
1条回答
网友
1楼 · 发布于 2024-09-27 00:13:39

我不知道fsi是如何与其他列相关的,但是假设所有数据都在一个模型中(很容易用sqlalchemy查询进行扩展),如下所示:

class User(Base):
    __tablename__ = 't_users'
    id = Column(Integer, primary_key=True)
    MAUorALL = Column(String)
    User_Type = Column(String)
    Country = Column(String)
    Month_ID = Column(Integer)
    Objects_Created = Column(Integer)

通过简单地使用^{}(或itertools.combinations,这取决于您想要实现的目标)来创建查询即可完成该任务。下面的代码将为一个User表生成一个查询,并为其生成各种ntiles。我假设阅读代码就足以理解所发生的事情:

^{pr2}$

相关问题 更多 >

    热门问题