sql对一个字段进行分组 怎么显示多个字段
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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就是对一个字段分组,但是取多个字段数据
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;
亲试可行,推荐这种,可以看看,容易理解
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
SELECT COL1,COUNT(COL2),COUNT(3) FROM TABLENAME GROUP BY COL1追问
不是这样的 这样可以吗
SELECT COL1,COL2,COL3, COUNT(COL1) FROM TABLENAME GROUP BY COL1
这样肯定不可以,你前面出现了后面group by也要出现
参考技术D 你的要求是不会有答案的,要不你需要显示的字段也参加分组以上是关于sql对一个字段进行分组 怎么显示多个字段的主要内容,如果未能解决你的问题,请参考以下文章