问大家一个问题关于sql语句的。
select * from yt_data_jinzhends where creditid= ' " + yName + " ' group by jingzheng
为什么我上面的这句老是报错,报错信息:在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
那位高手指点一下
------解决方案--------------------去掉group by jingzheng
------解决方案--------------------group by jingzheng 用来分组做什么?
------解决方案--------------------去掉group by jingzheng
------解决方案--------------------select * from yt_data_jinzhends where creditid= ' " + yName + " ' ordey by jingzheng
------解决方案--------------------如果你想分组必须对你所查询的所有字段都ordey by
------解决方案--------------------select * from yt_data_jinzhends where creditid= ' " + yName + " ' group by jingzheng
group by 要结合sum,count,avg等函数一起使用哈.
------解决方案--------------------SQL 的基础问题 了 昨天刚回答过
还是举个比较傻的例子
学号 科目 成绩
1 数学 80
1 物理 70
2 数学 60
2 英语 50
如果你打算对学号做聚合
那么可能出来的结果是
学号 平均成绩
1 75
2 55
select 学号,Avg(成绩) as 平均成绩
from 表
group by 学号
但你是不能select * ...的,原因很简单,你这个查询结果如果要显示科目的话,你打算显示那一门呢?
所以用Group by的时候有个规定,要么是跟在Group by后面的字段(学号),要么是聚合的函数(成绩做了平均的聚合),其他字段是不能显示的