select shipcountry,sum(shipvia) as totalvia,OrderDate as thefirsttime from orders group by shipcountry
比如要显示authors表中的au_fname,au_lname,zip,city,state信息,并且按city分组(相同city的排列在一起)
错误的表达:
select au_fname,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,state
from authors
group by city,au_fname,zip,state
即指定 GROUP BY 时,选择列表中任一非聚合表达式内的所有列都应包含在 GROUP BY 列表中,或者 GROUP BY 表达式必须与选择列表表达式完全匹配。
其实还有更好的办法:
select au_fname,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,zip,state
即指定 GROUP BY 时,选择列表中任一非聚合表达式内的所有列都应包含在 GROUP BY 列表中,或者 GROUP BY 表达式必须与选择列表表达式完全匹配。
其实还有更好的办法:
select au_fname,state
from authors
order by city
即使用order by 子句
还是authors表,要求在每个城市取一个作者,显示该作者的左右信息:可以用如下表达:select * from authorswhere au_id in(select min(au_id)from authorsgroup by city)其实是分组后取最小ID的行
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。