我正在尝试使用一个子查询,该子查询稍后会出现在另一个计算中的列中。我怎样才能做到这一点?
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
Run Code Online (Sandbox Code Playgroud)
所以基本上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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8382 次 |
| 最近记录: |