sql - 如何使用我在 select 子句中创建的列?

标签 sql postgresql

我很好奇是否可以将我在 select 子句中创建的列用于其他字段。

例如,我有这个查询——

SELECT 
    users.officeid,
    COUNT(DISTINCT CASE WHEN users.active = 1 THEN user.id ELSE NULL END) as active_users,
    COUNT(CASE WHEN users.total = 1  THEN 1 ELSE NULL END) as total_users,
    active_users / total_users

FROM users  
GROUP BY 1

我想要另一列是 active_users/total_users,但我得到了错误 -->

用户中不存在“active_users”列

我需要将它们放在一个公用表表达式中然后从中选择吗?还有其他解决方案吗?谢谢!

最佳答案

“As ...”仅重命名查询输出的列。

如果您想随时随地计算并避免创建额外的列,您可以执行以下操作:

select count(column1), count(column1), 
count(column1) / count(column2)
from table

您还可以为其创建物化 View 。

关于sql - 如何使用我在 select 子句中创建的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47623937/

相关文章:

java - Hibernate无法创建表: org. hibernate.tool.schema.spi.CommandAcceptanceException:执行DDL时出错“创建表PSQLException

sql - 在 knex 中创建外部关系时出错 - 表创建竞争条件

postgresql - 如何独立设置 Archiva 以使用 Postgres?

mysql - 为什么在MySQL中添加外键而不绘制关系

sql - PostgreSQL IF-THEN-ELSE 控制结构

python - 通过python的Postgresql ssl连接

mysql - 数据库归一化 2NF 和 3NF

sql - Access VBA 以修剪列中特定字符或单词周围的空间

sql - Oracle SQL : clause Where : date_column=trunc(sysdate) result different to trunc(date_column)=trunc(sydate)

Java 数据库查询未连接