sqlite—将sql中的计算列添加到表中

6qqygrtg  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(521)

我正在使用sqlite的db浏览器。如果sqlite是问题所在,请随意推荐另一个使用sql的免费gui或软件。
我需要从percent\u rank()函数中获取值,并在以后的计算中使用它们。这可以通过将这些值导出到新表或将它们附加到现有表(首选)来完成。我认为不可能引用这些计算列。我不能直接填充这些列,因为update set函数不能与percent\u rank()函数一起使用。
基于这个问题,我尝试了以下代码。该代码用于显示计算值(loan\u def\u rank),但原始数据未被修改。

  1. SELECT a.entity_uuid,
  2. a.name,
  3. b.Loan_def_Rank
  4. FROM data as a INNER JOIN
  5. (SELECT entity_uuid,
  6. percent_rank() OVER (PARTITION BY college_type ORDER BY loan_def_rate DESC)
  7. AS Loan_def_Rank,
  8. FROM data GROUP BY entity_uuid) as b
  9. ON a.entity_uuid = b.entity_uuid;
pdsfdshx

pdsfdshx1#

不应存储此派生信息。我建议改用视图:

  1. create view vdata as
  2. select
  3. d.*,
  4. percent_rank() over (partition by college_type order by loan_def_rate desc) as loan_def_rank
  5. from data d

该视图包含原始表的所有列,以及另一个包含计算值的列。您可以像查询表一样查询视图。
这样做的好处是,您可以随时了解数据的最新情况,而无需任何维护成本(而不是实际存储数据,这需要您手动保持数据的最新状态)。

相关问题