在 SQL 中,计算列是在视图中扩展数据模型的宝贵工具。它们允许您从现有列中获取新值,从而释放更复杂分析和演示的可能性。但是,当您需要使用计算列本身作为同一视图中后续计算的一部分时会发生什么?
考虑一个常见场景,其中您有一个包含以下列的表:
在您的一个视图中,您通过简单添加 ColumnA 和 ColumnB 就创建了一个名为 calccolumn1 的计算列。现在,您希望使用 calccolumn1 通过将 calccolumn1 除以 ColumnC 来计算另一列 calccolumn2。
最初,您可以尝试按如下方式编写查询:
Select ColumnA, ColumnB, ColumnA + ColumnB As calccolumn1 calccolumn1 / ColumnC as calccolumn2
不幸的是,这不起作用,因为 calccolumn2 无法引用直接计算之前计算的 calccolumn1。
解决此问题的一种方法是使用嵌套查询:
Select ColumnA, ColumnB, calccolumn1, calccolumn1 / ColumnC as calccolumn2 From ( Select ColumnA, ColumnB, ColumnC, ColumnA + ColumnB As calccolumn1 from t42 );
此方法创建一个计算 calccolumn1 的子查询。然后,主查询可以在计算中使用子查询中的 calccolumn1。
如果可行,另一种选择是简单地在主查询中重复计算 calccolumn1:
Select ColumnA, ColumnB, ColumnA + ColumnB As calccolumn1, (ColumnA + ColumnB) / ColumnC As calccolumn2 from t42;
这种方法避免了嵌套查询的复杂性,特别是当计算calccolumn1 比较简单。
以上是如何在 SQL 视图中使用嵌套计算列执行复杂计算?的详细内容。更多信息请关注PHP中文网其他相关文章!