日期:2014-05-17  浏览次数:20448 次

sql server之group by分组问题
我现在对表里的一个字符串字段进行分组,作用是去重,在网上找的用法是在group by语句内将所有列名都包含进行,但是都包含进去后查出来的是不对的,请问应该怎么用。

原用法select * from tableName group by 分组的字段
网上教的用法select * from tableName group by 分组的字段,剩下的所有字段全部追加上

很显然后者查出来的就不对,但是分组group by要求将足有字段都加进去,搞不懂,求教!

坐等。。。。
sql?server

------解决方案--------------------
去重没必要搞group by
------解决方案--------------------
来点儿数据吧,这样是没有结果的。看来楼主对GROUP BY的理解还不够深。请参考:
SELECT
fieldA,
fieldB,
MAX(fieldC),
MAX(fieldD)
FROM tb
GROUP BY
fieldA,
fieldB


------解决方案--------------------
group by 是分级统计的,没有参加分组统计的字段,用必须用到集合函数sum(),count(),avg等

或许方便的话,你可以帖一点测试数据出来

------解决方案--------------------
是的,只要是不参与分组的字段都用聚合函数处理就行,例如min()或者max()等