sql - PostgreSQL 子查询作为可用变量

标签 sql postgresql

我试图在稍后的另一个计算中使用一个出现在列中的子查询。我该怎么做?

SELECT c_id, c_title, c_enrolcap,
(SELECT COUNT(e_id) AS enrol FROM enrollments WHERE e_c_id = c_id) AS enrolled,
c_enrolcap - enrolled AS avail,
FROM classes AS c

所以基本上 enrolled 的结果我需要它作为一个列来计算以后的结果,也作为它自己的列。

最佳答案

我通常使用公用表表达式来执行此操作。

http://www.postgresql.org/docs/9.3/static/queries-with.html

在外部查询中执行 c_enrolcap - enrolled as avail

喜欢:

WITH enrollment AS (
SELECT c_id, c_title, c_enrolcap,
(SELECT COUNT(e_id) AS enrol FROM enrollments WHERE e_c_id = c_id) AS enrolled

FROM classes AS c)
SELECT c_id, c_title, c_enrolcap, enrolled, c_enrolcap - enrolled AS avail
FROM enrollment

关于sql - PostgreSQL 子查询作为可用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19167995/

相关文章:

django - 什么 AWS 服务可以帮助加快缓慢的 Django View 功能

sql - 为什么稀疏列中的非空值在 SQL Server 2008 中占用额外空间

mysql - 通过从另一个表获取最大值来更新表

sql - SQL 查询中的多个嵌套 SELECT

postgresql - 如何在 Rails 控制台中查找数据库名称

postgresql - azure + postgresql : How to fix error: Unable to connect to server: server closed the connection unexpectedly

mysql - 在多个列字符串比较中获取与字符串比较匹配的列名

sql - 在所有列中搜索并找到一个字符串值

postgresql - Postgres 通过网络发送 COPY 的输出

postgresql - postgres的COPY函数是否支持utf 16编码的文件?