Office中国论坛/Access中国论坛

标题: 如何进行分类排序并且赋予分组序号? [打印本页]

作者: smokinglog    时间: 2006-8-15 00:17
标题: 如何进行分类排序并且赋予分组序号?
id nam summ  序号
1 c 0               1
2 b 0               1
3 a 0                1
4 c 1                2
5 b 1                2
6 a 1                2
7 b 2                3
8 b 2                4
9 a 2                3
10 c 3              3
11 a 3             4
12 b 4             5
13 a 4             5
14 c 5              4

按照a,b,c分组,然后分别把a,b,c按照id排序,最后给每个组都赋予一个序号,即按照a,b,c出现的次数,赋予一个数字,得到“序号”列里面的数字

这有的要求,查询可以做到么,请高人指点[attach]19758[/attach]

作者: wwwwa    时间: 2006-8-15 00:21
将要求结果贴出来看看
作者: smokinglog    时间: 2006-8-15 00:25
以下是引用wwwwa在2006-8-14 16:21:00的发言:
将要求结果贴出来看看

“序号”那一列下面的数字就是需要产生的结果

数据少可以手工赋值,多了就只能想办法
作者: wwwwa    时间: 2006-8-15 00:29
try:

SELECT *,(select count(*) from 表1 where a.nam=nam and a.id>=id) from 表1 a order by id

作者: smokinglog    时间: 2006-8-15 02:18
以下是引用wwwwa在2006-8-14 16:29:00的发言:


try:

SELECT *,(select count(*) from 表1 where a.nam=nam and a.id>=id) from 表1 a order by id

切实可行~不过,大样本(大约800条)执行的太慢

谢谢wwwwa
作者: wwwwa    时间: 2006-8-15 18:37
以下是引用smokinglog在2006-8-14 18:18:00的发言:



切实可行~不过,大样本(大约800条)执行的太慢


谢谢wwwwa



你自己修改一下SQL语句即可:

SELECT a.id, a.nam, count(*)
FROM 表1 AS a INNER JOIN 表1 AS b ON (a.id>=b.id) AND (a.nam=b.nam)
GROUP BY a.id, a.nam
ORDER BY [a.id];

作者: wang1950317    时间: 2006-8-15 18:51
不错!谢谢wwwwa!
作者: zqwcn    时间: 2007-12-30 15:17
不错...到学习了................




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3