悬赏分:5 浏览:218 次
PKId Title Datatime B_PIKd
1 title NULL 2
2 title NULL 1
3 title NULL 2
4 title NULL 3
5 title NULL 3
6 title NULL 3
7 title NULL 3
8 title NULL 1
select * from News group by B_PKId 这条为什么报错
消息 8120,级别 16,状态 1,第 1 行
选择列表中的列 'News.PKId' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。
|
GROUP BY 是配合聚合语句用的
select count(*) , B_PKId from News group by B_PKId
只group by中能够不用聚合函数表示的只有被group by 的项 GROUP BY 语句中 SELECT中的东西必须包含在聚合语句里,或者是聚合函数,比如COUNT AVG MAX等。楼主的要求可以用 SELECT *,A.count FROM News INNER JOIN (select COUNT(*) AS count from News group by B_PKId ) AS A WHERE a.B_PKId = News.B_PKId group by是分组的意思,分组就有按照什么分组,然后还有分组每组的聚合值是什么。 看看基础的sql语句吧,理解了就明白为啥错了。 1、3楼都说了,看SQL基础是最重要的 |