这条查询语句如何写?
有这样一个表table,内容如下
编号 姓名
001 张明
002 田华
003 张倩
004 刘娟
005 刘亮
要得到结果如下:
姓名 人数
张_ 2
田_ 1
刘_ 2
就是要按‘姓氏’做出统计,如何做?UP有分?请留下您的建议,多谢!!!!!!
问题点数:100、回复次数:17Top
1 楼cuteant(我这张旧床票还能否登上你的破床|涛声是否依旧)回复于 2006-03-04 17:59:15 得分 0
SQL.Add('select left([姓名],1) as 姓名,count(left([姓名],1)) as 人数 from TableName group by left([姓名],1)');Top
2 楼janezjtjdx(学习中)回复于 2006-03-04 18:06:00 得分 20
要用到GROUP BYTop
3 楼keiy()回复于 2006-03-04 18:06:21 得分 15
如果不考虑双姓,可用以下SQL(access,其它数据可改MID函数,如oracle用substr)
SELECT Mid(姓名,1,1)+'_' AS 姓 ,count(*) as 人数
FROM test1
group by mid(姓名,1,1)+'_';
Top
4 楼janezjtjdx(学习中)回复于 2006-03-04 18:08:59 得分 0
select left([姓名],1) as 姓名,count(left([姓名],1)) as 人数 from TableName group by left([姓名],1) 这个语句没错。Top
5 楼janezjtjdx(学习中)回复于 2006-03-04 18:15:35 得分 0
SELECT Mid(姓名,1,1)+'_' AS 姓 ,count(*) as 人数
FROM test1
group by mid(姓名,1,1)+'_';
有点错误,在SQLServer中没有mid,应该是substring才对。Top
6 楼janezjtjdx(学习中)回复于 2006-03-04 18:17:05 得分 0
嘿嘿,keiy()抱歉,我看错了。Top
7 楼ourlin(寒江独钓)回复于 2006-03-04 18:30:52 得分 5
cuteant兄正解Top
8 楼zffzff(zss)回复于 2006-03-04 18:33:04 得分 0
我用的是oracle数据库,运行上面语句,提示“invalid column name”。是上面语句不能用在oracle吗?Top
9 楼cuteant(我这张旧床票还能否登上你的破床|涛声是否依旧)回复于 2006-03-04 18:33:44 得分 60
呵呵,需要有一点小小的改动
SQL.Text := 'select left([姓名],1)+''_'' as 姓名,count(left([姓名],1)) as 人数 from TableName group by left([姓名],1)';
主要是姓氏少了一个_符号Top
10 楼cuteant(我这张旧床票还能否登上你的破床|涛声是否依旧)回复于 2006-03-04 18:36:08 得分 0
哦,oracle啊,不早说,改一下:SUBSTR('Message',1,4)
'select SUBSTR([姓名],1,1)+''_'' as 姓名,count(SUBSTR([姓名],1,1)) as 人数 from TableName group by SUBSTR([姓名],1,1)'Top
11 楼zffzff(zss)回复于 2006-03-04 18:44:55 得分 0
感谢cuteant(我这张旧船票还能否登上你的破船|涛声是否依旧) !
'select SUBSTR([姓名],1,1)+''_'' as 姓名,count(SUBSTR([姓名],1,1)) as 人数 from TableName group by SUBSTR([姓名],1,1)'
这句代码有错误!我改了一下,成功了!
'select SUBSTR(姓名,1,1 as 姓名,count(SUBSTR(姓名,1,1)) as 人数 from TableName group by SUBSTR(姓名,1,1)'
多谢,多谢
Top
12 楼cuteant(我这张旧床票还能否登上你的破床|涛声是否依旧)回复于 2006-03-04 18:49:12 得分 0
你的意思是多了一个[]就错了,你是试过了的么?
本来用[]是为了避免字段名恰好是关键字的情况,因为我测试的时候是用的name做字段的,所以加了一个[],改为"姓名"以后就没有去掉,觉得多加也没关系的。Top
13 楼zffzff(zss)回复于 2006-03-04 18:55:02 得分 0
是,我试了,有[]和''-''就错,去了就好了Top
14 楼cuteant(我这张旧床票还能否登上你的破床|涛声是否依旧)回复于 2006-03-04 18:56:59 得分 0
哦,了解了,呵呵。Top
15 楼zffzff(zss)回复于 2006-03-04 18:57:51 得分 0
''_''的目的是为什么?是让它出现在姓后吗?如张_,还是别有用途?Top
16 楼cuteant(我这张旧床票还能否登上你的破床|涛声是否依旧)回复于 2006-03-04 19:00:50 得分 0
就是这个目的,因为你在顶楼里面要求的是“张_”而用SubStr(姓名,1,1)后显示的是“张”,少了一个“_”Top
17 楼zffzff(zss)回复于 2006-03-04 19:01:27 得分 0
谢谢!结贴!!!Top




