SELECT rownum, t.* FROM ( SQL 错误 [40000]: ERROR, 含聚集函数嵌套的查询目标列中不能包含未聚集的列! com.oscar.util.OSQLException: ERROR, 含聚集函数嵌套的查询目标列中不能包含未聚集的列! SELECT SUM( integral ) integral, user_id userId FROM doc_integral_record WHERE integral_state = '1' GROUP BY integral,user_id ORDER BY SUM( integral ) DESC ) t WHERE t.userId = '刘起'
时间: 2024-03-15 12:46:53 浏览: 9
根据错误信息,可以看出错误原因是子查询中不能同时包含聚合函数和非聚合函数的列。在这个 SQL 查询语句中,子查询中的 "SUM(integral)" 是一个聚合函数,而 "user_id" 则是一个非聚合函数的列,因此会报错。解决这个问题的方法是,在子查询中只选择聚合函数的列,即 "SUM(integral)",而不包含其他非聚合函数的列。修改后的 SQL 查询语句如下:
```
SELECT rownum, t.*
FROM (
SELECT SUM(integral) integral, user_id userId
FROM doc_integral_record
WHERE integral_state = '1'
GROUP BY user_id
ORDER BY SUM(integral) DESC
) t
WHERE t.userId = '刘起';
```
这个查询语句中,子查询中只选择了聚合函数 "SUM(integral)",并且在 GROUP BY 子句中只分组了 "user_id" 这一列,以确保查询结果正确。
相关问题
select rownum,a.* from (select rownum rn,表.* from 表 where rownum >= 5)a where a.rn<=10
根据您提供的查询语句,它是用于在Oracle数据库中获取从第5行到第10行的数据。该查询使用了两个嵌套的子查询,其中第一个子查询用于为每一行分配一个唯一的行号(rn),第二个子查询用于选择行号在5到10之间的数据。
请注意,您提供的查询语句中的"表"是一个占位符,您需要将其替换为实际的表名。另外,这个查询语句使用了Oracle特定的语法,并不适用于所有数据库系统。
如果您有任何其他问题,请随时提问。
select rownum,a.* from (select rownum rn,rst_food.* from rst_food where rownum>= 5)a where a.rn<=10
根据您提供的查询语句,这是一个用于在表"rst_food"中获取从第5行到第10行的数据的查询。
查询语句中的第一个子查询用于为每一行分配一个唯一的行号(rn),并从"rst_food"表中选择行号大于等于5的数据。第二个子查询则从第一个子查询的结果中选择行号小于等于10的数据。
请注意,这个查询语句假设表"rst_food"已经存在并包含所需的数据。
如果您有任何其他问题,请随时提问。