Sqlite 在子查询的分组中使用外部查询的字段

Sqlite 在子查询的分组中使用外部查询的字段,sqlite,Sqlite,我的表:创建表Tid INT主键,值INT UNIQUE 我认为,这个查询将在表中生成一个中值。但是sqlite v.3.9.1给了我一个错误,没有这样的列:ot.value到带有GROUPBY的行。虽然它使用了类似的表达式,但它成功地使用where处理了line。这个查询有什么问题 选择 ot.id, ot值 从T到ot 哪里 从中选择countc>countc 从T中选择count*c作为它的参数 它在哪里。价值!=ot值 按it.value

我的表:创建表Tid INT主键,值INT UNIQUE

我认为,这个查询将在表中生成一个中值。但是sqlite v.3.9.1给了我一个错误,没有这样的列:ot.value到带有GROUPBY的行。虽然它使用了类似的表达式,但它成功地使用where处理了line。这个查询有什么问题

选择 ot.id, ot值 从T到ot 哪里 从中选择countc>countc 从T中选择count*c作为它的参数 它在哪里。价值!=ot值 按it.value同样的查询在PostgreSQL中成功,并打印出预期的内容。MySQL给出了错误代码:1054。“where子句”中的未知列“ot.value”

首先,您运行的是MySQL还是SQLite?他们不是一回事。那么,您实际使用的数据库版本是什么呢?正如我所说,我尝试了MySQL、SQLite和PostgreSQL中的查询。每一个都得到了不同的结果。它在PostgreSQL中工作,在MySQL和SQLite中抛出的错误略有不同。再说一遍,你使用的是哪个版本的MySQL?我可以使用MySQL 8+解决问题。我很惊讶这个查询可以在任何地方运行。如果你想计算一个中间值,Sqlite没有内置的聚合函数,但是编写一个用户定义的聚合函数很容易……首先,你是在运行MySQL还是Sqlite?他们不是一回事。那么,您实际使用的数据库版本是什么呢?正如我所说,我尝试了MySQL、SQLite和PostgreSQL中的查询。每一个都得到了不同的结果。它在PostgreSQL中工作,在MySQL和SQLite中抛出的错误略有不同。再说一遍,你使用的是哪个版本的MySQL?我可以使用MySQL 8+解决问题。我很惊讶这个查询可以在任何地方运行。如果你想计算一个中位数,Sqlite没有一个内置的聚合函数,但是很容易编写一个用户定义的函数。。。