我试图在稍后的另一个计算中使用一个出现在列中的子查询。我该怎么做?
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/