在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句
2009-10-11 21:37
106 查看
下面这个就是报“在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句”问题语句
select shipcountry,sum(shipvia) as totalvia,OrderDate as thefirsttime from orders group by shipcountry
下面是通过的,请注意orderdate
select shipcountry,sum(shipvia) as totalvia,OrderDate as thefirsttime from orders group by shipcountry,orderdate
相应的从网上看到其他的朋友也有这样的问题
比如要显示authors表中的au_fname,au_lname,zip, city,state信息,并且按city分组(相同city的排列在一起)
错误的表达:
select au_fname,au_lname,zip, city,state
from authors
group by city
就会出现:服务器: 消息 8120,级别 16,状态 1,行 1
列 'authors.au_fname' 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
服务器: 消息 8120,级别 16,状态 1,行 1
列 'authors.au_lname' 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
...... 的错误提示。
正确的表达:
select au_fname,au_lname,zip, city,state
from authors
group by city,au_lname,au_fname,zip,state
即指定 GROUP BY 时,选择列表中任一非聚合表达式内的所有列都应包含在 GROUP BY 列表中,或者 GROUP BY 表达式必须与选择列表表达式完全匹配。
其实还有更好的办法:
select au_fname,au_lname,zip, city,state
from authors
order by city
即使用order by 子句
还是authors表,要求在每个城市取一个作者,显示该作者的左右信息:
可以用如下表达:
select * from authors
where au_id in
(select min(au_id)
from authors
group by city)
其实是分组后取最小ID的
比如要显示authors表中的au_fname,au_lname,zip, city,state信息,并且按city分组(相同city的排列在一起)
错误的表达:
select au_fname,au_lname,zip, city,state
from authors
group by city
就会出现:服务器: 消息 8120,级别 16,状态 1,行 1
列 'authors.au_fname' 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
服务器: 消息 8120,级别 16,状态 1,行 1
列 'authors.au_lname' 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
...... 的错误提示。
正确的表达:
select au_fname,au_lname,zip, city,state
from authors
group by city,au_lname,au_fname,zip,state
即指定 GROUP BY 时,选择列表中任一非聚合表达式内的所有列都应包含在 GROUP BY 列表中,或者 GROUP BY 表达式必须与选择列表表达式完全匹配。
其实还有更好的办法:
select au_fname,au_lname,zip, city,state
from authors
order by city
即使用order by 子句
还是authors表,要求在每个城市取一个作者,显示该作者的左右信息:
可以用如下表达:
select * from authors
where au_id in
(select min(au_id)
from authors
group by city)
其实是分组后取最小ID的行
select shipcountry,sum(shipvia) as totalvia,OrderDate as thefirsttime from orders group by shipcountry
下面是通过的,请注意orderdate
select shipcountry,sum(shipvia) as totalvia,OrderDate as thefirsttime from orders group by shipcountry,orderdate
相应的从网上看到其他的朋友也有这样的问题
比如要显示authors表中的au_fname,au_lname,zip, city,state信息,并且按city分组(相同city的排列在一起)
错误的表达:
select au_fname,au_lname,zip, city,state
from authors
group by city
就会出现:服务器: 消息 8120,级别 16,状态 1,行 1
列 'authors.au_fname' 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
服务器: 消息 8120,级别 16,状态 1,行 1
列 'authors.au_lname' 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
...... 的错误提示。
正确的表达:
select au_fname,au_lname,zip, city,state
from authors
group by city,au_lname,au_fname,zip,state
即指定 GROUP BY 时,选择列表中任一非聚合表达式内的所有列都应包含在 GROUP BY 列表中,或者 GROUP BY 表达式必须与选择列表表达式完全匹配。
其实还有更好的办法:
select au_fname,au_lname,zip, city,state
from authors
order by city
即使用order by 子句
还是authors表,要求在每个城市取一个作者,显示该作者的左右信息:
可以用如下表达:
select * from authors
where au_id in
(select min(au_id)
from authors
group by city)
其实是分组后取最小ID的
比如要显示authors表中的au_fname,au_lname,zip, city,state信息,并且按city分组(相同city的排列在一起)
错误的表达:
select au_fname,au_lname,zip, city,state
from authors
group by city
就会出现:服务器: 消息 8120,级别 16,状态 1,行 1
列 'authors.au_fname' 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
服务器: 消息 8120,级别 16,状态 1,行 1
列 'authors.au_lname' 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
...... 的错误提示。
正确的表达:
select au_fname,au_lname,zip, city,state
from authors
group by city,au_lname,au_fname,zip,state
即指定 GROUP BY 时,选择列表中任一非聚合表达式内的所有列都应包含在 GROUP BY 列表中,或者 GROUP BY 表达式必须与选择列表表达式完全匹配。
其实还有更好的办法:
select au_fname,au_lname,zip, city,state
from authors
order by city
即使用order by 子句
还是authors表,要求在每个城市取一个作者,显示该作者的左右信息:
可以用如下表达:
select * from authors
where au_id in
(select min(au_id)
from authors
group by city)
其实是分组后取最小ID的行
相关文章推荐
- 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句
- 选择列表中的列无效,因为该列没有包含在聚合函数或 GROUP BY 子句中
- SQLgroupby报 错 选择列表中的列无效,因为该列没有包含在聚合函数或 GROUP BY 子句中
- GROUP BY 子句中 选择列表中的列无效,因为该列没有包含在聚合函数或
- 选择列表中的列无效,因为该列没有包含在聚合函数或 GROUP BY 子句中
- 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句(
- 选择列表中的列……无效,因为该列没有包含在聚合函数或 GROUP BY 子句中
- 选择列表中的列无效,因为该列没有包含在聚合函数或 GROUP BY 子句中
- 选择列表中的列 '***' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中
- 选择列表中的列 '***' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中
- 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中
- 选择列表中的列无效,因为该列没有包含在聚合函数或 GROUP BY 子句中
- 选择列表中的列无效,因为该列没有包含在聚合函数或 GROUP BY 子句中
- 数据库查询报错:选择列表中的列 '字段' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。
- 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子...
- ORDER BY 子句中的列 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中
- 使用sql server时碰到的错误 关于对象.属性qingjia.id' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中
- 关于因为该列没有包含在聚合函数或 GROUP BY 子句中
- 关于因为该列没有包含在聚合函数或 GROUP BY 子句中
- sql语句学习笔记(10)-group by(因为该列没有包含在聚合函数或 GROUP BY 子句中。聚合函数不能出现在where中)