请问这个GROUP BY语句应该怎么写?

yongtang 2005-08-25 01:55:15
我有一个表,有十个字段,我现在从中取出需要显示的6个字段,并且按照这6个字段中一个字段分类、另一个字段排序。

我写的SELECT语句是
SELECT A,B,C,D,E,F FROM TABLE GROUP BY A ORDER BY C

但是运行后就报错,说试图执行的查询中不包含作为合计函数一部分的特定表达式,请问我这个SELECT语句应该怎么写?

谢谢!
...全文
891 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
yongtang 2005-08-25
  • 打赏
  • 举报
回复
明白了,谢谢大家,结贴收工!
gimy007 2005-08-25
  • 打赏
  • 举报
回复
按楼主给的数据,这不应该用分组的;
如果楼主想统计按A分类,其他各个字段的信息如:b,c,d,e.f的最大值、数量等这才用到分组。
gimy007 2005-08-25
  • 打赏
  • 举报
回复
select * from yourtable order by A
mysummer2003 2005-08-25
  • 打赏
  • 举报
回复
select A,B,C,D,E,F from table order by a
winterice 2005-08-25
  • 打赏
  • 举报
回复
Up
yongtang 2005-08-25
  • 打赏
  • 举报
回复
假设现在的表是
A B C D E F

2 $ 7 ^ * (
5 ^ 2 & ) a
4 K 4 * ( b
2 * 1 & ( B
5 @ 1 & & (
2 ^ 4 * N B

现在我想得到的输出是
A B C D E F

2 $ 7 ^ * (
2 ^ 4 * N B
2 * 1 & ( B
4 K 4 * ( b
5 ^ 2 & ) a
5 @ 1 & & (

还望各位前辈能够指点,谢谢!
zhangyang555 2005-08-25
  • 打赏
  • 举报
回复
TO 回复人: yongtang(Reloaded) ( ) 信誉:100 2005-08-25 14:56:00 得分: 0

但是我同时要显示B、C、D、E、F几个字段的值呢,而不是它们的统计值呢?

既然是分组,原字段A的值肯定有重复,而后边几个字段的值肯定是每个记录都不同,给个简单的例子吧:
原数据:
A B C D E F
1 ! @ # ~ %
1 ^ ! # $ !
2 % $ # @ @
3 % * % # @

你说有两条记录字段A的值都是1 ,如果你要显示 B,C,D,E,F的值,你说是显示第一条的,还是第二条的?
如果要使用group by 而不显示统计值肯定是不现实的,如果把后几个字段也加到group by 后边那样查询的结果肯定不是楼主想要的,就我上边的数据,如果那样分组的话,结果肯定是有问题的

要看楼主对后几个字段的值有什么要求才能给出具体的操作,不一定要使用group by


yongtang 2005-08-25
  • 打赏
  • 举报
回复
查询结果中包含的非分组字段必须使用聚合函数

//这样使用了聚合函数后就得不到我需要的原始数据了,不都是count()或者max()这样的统计结果吗?
bflovesnow 2005-08-25
  • 打赏
  • 举报
回复
hehe.
zy888 2005-08-25
  • 打赏
  • 举报
回复
查询结果中包含的非分组字段必须使用聚合函数
yongtang 2005-08-25
  • 打赏
  • 举报
回复
就是希望ABCDEF这6个字段的值都能显示出来,就像select a,b,c,d,e,f from table的效果

然后在这些结果中,首先按照a来分组,比如"type1"的归在一起显示,"type2"的归在一起显示
然后在分组后的每一组中,再根据c字段里面的数值大小进行降序排序
splory 2005-08-25
  • 打赏
  • 举报
回复
你需要把select后的所有选项都要放在group by就不会有错了
vivianfdlpw 2005-08-25
  • 打赏
  • 举报
回复
你分组的目的是什么?
yongtang 2005-08-25
  • 打赏
  • 举报
回复
但是我同时要显示B、C、D、E、F几个字段的值呢,而不是它们的统计值呢?
bugchen888 2005-08-25
  • 打赏
  • 举报
回复
select子句当中的栏位只能是group by栏位的子集。
wwwhch2004 2005-08-25
  • 打赏
  • 举报
回复
有Group By 后,对其他的字段需要聚合。
wgsasd311 2005-08-25
  • 打赏
  • 举报
回复
我写的SELECT语句是
SELECT A,B,C,D,E,F FROM TABLE GROUP BY A ORDER BY C
-------B,C,D,E,F不会分组字段,必须用聚合函数。
jzdmyjzd 2005-08-25
  • 打赏
  • 举报
回复
SELECT A,
Max(B) As B,
Max(C) As C,
Max(D) As D,
Max(E) As E,
Max(F) As F
FROM 表
GROUP BY A
ORDER BY C
WangZWang 2005-08-25
  • 打赏
  • 举报
回复
SELECT A,B,C,D,E,F FROM TABLE
ORDER BY C

--如果你要对A分组,则其他字段要使用聚合函数
filebat 2005-08-25
  • 打赏
  • 举报
回复
vivianfdlpw你的动作真是太快了!!
凡是我能见到的帖子,都被你回了。

小声问一下,你什么时候休息,不上CSDN?
预先通知一声,这样我好来抢分。

嘻嘻。
加载更多回复(2)

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧