当前位置: 首页 > 面试题库 >

列不存在?

金谭三
2023-03-14
问题内容

想知道是否有人可以通过此查询为我提供一些帮助:

SELECT u1.id,count(DISTINCT u2.userstatus) as TEMPCOLUMN FROM users AS u1
JOIN friendssym ON u1.id = friendssym.user_id
JOIN (SELECT * FROM users) as u2 ON friendssym.friend_id=u2.id
WHERE TEMPCOLUMN=1 
group by u1.id;

我只想得到计数(已重命名)等于1的结果。此查询出现错误:

 ERROR:  column "tempcolumn" does not exist

但是该列 应该 存在,对吗?有人可以协助吗?谢谢!


问题答案:

您不能在WHERE子句中引用列别名。

  SELECT u1.id,
         COUNT(DISTINCT u2.userstatus) as TEMPCOLUMN 
    FROM USERS AS u1
    JOIN friendssym ON u1.id = friendssym.user_id
    JOIN USERS as u2 ON friendssym.friend_id = u2.id      
GROUP BY u1.id
  HAVING COUNT(DISTINCT u2.userstatus) = 1

在传统SQL中,最早可以引用列别名的是ORDER BY子句。但是MySQL和SQL Server允许在HAVINGandGROUPBY子句中进行访问。



 类似资料:
  • 嗨,我在java代码中执行这个查询,它告诉我 组织。postgresql。util。PSQLException:错误:“st_srid”列不存在 但是,当我直接在pgAdmin中运行它时,它会显示列和其中的值。 以下是我的查询: 谢谢你的帮助

  • 问题内容: 我尝试在spring版本的项目中将hibernate模式从4升级到5 。升级之后,调用更新方法时,在堆栈跟踪中发现以下错误。 我用注解更改了自动递增的ID 错误仍然存​​在。 问题答案: 您需要设置Hibernate5.x ..参见并链接。 对于较早版本的hibernate 4.x:

  • 我已经能够将PostgreSQL链接到Java。我已经能够显示表中的所有记录,但我无法执行删除操作。 下面是我的代码: 请注意,MAC是一个字符串字段,用大写字母书写。表中确实存在此字段。 我得到的错误是: 严重:错误:“Mac”列不存在

  • 我有一个表,它有20个整数列和一个名为“foo”的文本列 如果我运行查询: 我得到一个错误: 我已经核实过他的专栏确实存在。如果我这样做: 结果输出将“foo”显示为一列。。。。我猜我必须在查询中做一些特殊的事情,因为foo是一个文本列。。。 感谢您的帮助(POSTGRESQL 8.3)

  • 问题内容: 我在获取SEQUENCE时遇到问题。我已经以管理员身份创建了一个序列,并向其他用户授予了选择和更改特权。 当我这样做时: 我可以在列表中看到我的SEQUENCE。 但是我无法访问代码中的序列。使用 : 我究竟做错了什么? 问题答案: 您将必须通过以下方式完全限定您的顺序: 或为其创建公共同义词:

  • 我一直在尝试将我的数据库从MySql迁移到Postgres,但我遇到了一个大问题,似乎找不到解决方法。 现在,在我访问数据库并获取数据的C#代码中,我向数据库发送以下查询: 我试着在列名周围没有引号的情况下查询它,但这只会让我得到 我的一个朋友暗示会发生这种情况,因为Postgres让引号之外的所有内容都是小写的,但我们又回到了另一个问题。 我是Postgres的新手,我正在努力学习这一点,但这是