sql对一个字段进行分组 怎么显示多个字段

select IteID,count(IteID) WrongCount from Exam_ItemListWrong_View
where IsKeyTrue=2 and UserId in
(select UserId from Sys_UserInfo where classid in
(select ParameterValue from Sys_UserParameter where U_ID=60))
group by IteID order by WrongCount desc
这样是可以的 但只能显示一个字段 我还需要显示同一张表里其他的字段
怎么才能做到呢?

select X.*,WrongCount
from Exam_ItemListWrong_View X,(select IteID,count(IteID) WrongCount from Exam_ItemListWrong_View
where IsKeyTrue=2 and UserId in
(select UserId from Sys_UserInfo where classid in
(select ParameterValue from Sys_UserParameter where U_ID=60))
group by IteID) AS Y
WHERE X.ITEID=Y.ITEID
order by WrongCount desc
这样也不行 会显示重复数据

    SQL 分组关键字 Group by 

    在汇总,求和,等函数中可以出现多字段

    假如定义一个表 A,表中有字段 a nvarchar 类型,b 字段int 类型

    select a,sum(b) as b from A

    group by a

    上列SQL就是对一个字段分组,但是取多个字段数据

温馨提示:内容为网友见解,仅供参考
第1个回答  2018-09-29
SELECT "最高分",student.*
FROM student ,(SELECT MAX(score) AS score,`subject` FROM student GROUP BY `subject`)b
WHERE student.`score` = b.score
AND student.`subject` = b.subject
UNION
SELECT "最低分",student.*
FROM student ,(SELECT MIN(score) AS score,`subject` FROM student GROUP BY `subject`)b
WHERE student.`score` = b.score
AND student.`subject` = b.subject;

亲试可行,推荐这种,可以看看,容易理解

第2个回答  推荐于2017-12-16
SELECT COL1,COL2,COL3,TEST
FROM TABLENAME X,(SELECT COL1,COUNT(COL1) AS TEST GROUP BY COL1)AS Y WHERE X.COL1=Y.COL1 只有上面这种方法。GROUP BY 必须按SELECT后不是聚合函数的所有字段分组。追问

这样也不行啊 会报错
(除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效。)

追答

select X.*,WrongCount
from Exam_ItemListWrong_View X,(select IteID,count(IteID) WrongCount from Exam_ItemListWrong_View
where IsKeyTrue=2 and UserId in
(select UserId from Sys_UserInfo where classid in
(select ParameterValue from Sys_UserParameter where U_ID=60))
group by IteID) AS Y
WHERE X.ITEID=Y.ITEID
order by WrongCount desc

追问

这样还是不行  会有重复数据 

追答

我看你图了、你不是要全部字段吗?而且没有重复啊。整个字段一模一样才叫重复。
否则你按那几个属性值相同的字段分组、这样结果就不对了。
你把select 后面加distinct去重复
select distinct X.*,WrongCount

本回答被提问者和网友采纳
第3个回答  2012-09-08
首先你题目不是很明确我理解的是这样:
SELECT COL1,COUNT(COL2),COUNT(3) FROM TABLENAME GROUP BY COL1追问

不是这样的 这样可以吗
SELECT COL1,COL2,COL3, COUNT(COL1) FROM TABLENAME GROUP BY COL1

追答

这样肯定不可以,你前面出现了后面group by也要出现

第4个回答  2012-09-10
你的要求是不会有答案的,要不你需要显示的字段也参加分组
相似回答