You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Peewee中基于SELECT查询/CTE创建模型?

问题解答

当然可以,不用创建永久视图也能把目标SQL查询或其结果作为Model的数据源,具体可以通过两种方式实现:

一、直接用SQL查询作为Model数据源

多数ORM框架、数据建模工具都支持直接将原生SQL查询作为Model的数据源,无需提前创建视图:

  • 比如用Python的SQLAlchemy时,可直接封装目标查询作为数据源:
from sqlalchemy import text, create_engine

# 初始化数据库连接
engine = create_engine('你的数据库连接地址')
# 定义目标聚合查询
flight_query = text("SELECT plane, count(flightId) as num from flights")
# 执行查询并获取结果
query_result = engine.execute(flight_query)
# 可将结果映射到临时Model类,或直接用于数据建模
  • 要是用Tableau、Power BI这类BI工具,直接在数据源配置环节输入这条SQL查询,就能基于查询结果创建Model,全程不用碰永久视图。

二、用查询结果作为Model数据源

如果需要先拿到查询结果再建模,也有两种可行方案:

  • 创建会话级临时表存储查询结果:临时表仅在当前数据库会话中存在,会话结束后自动销毁,不会产生永久对象。以PostgreSQL为例:
CREATE TEMP TABLE flight_stats AS SELECT plane, count(flightId) as num from flights;

之后就能把这个临时表作为Model的数据源。

  • 在应用层直接获取结果集并转换:比如用Pandas把查询结果转成DataFrame,再将DataFrame作为Model的数据源,这种方式完全不需要在数据库层面创建任何对象。

内容的提问来源于stack exchange,提问作者Dennis Beier

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 06:30:36