SQL里面怎么去除重复的?

我想要把表里面的一个值统计它的数量,然后分类汇总,并且重复的只留下第一次出现的值,比如我的表是“表”值1值2客户1A地办理客户2A地办理客户3B地办理客户1B地办理要得出... 我想要把表里面的一个值统计它的数量,然后分类汇总,并且重复的只留下第一次出现的值,
比如我的表是 “表”
值1 值2
客户1 A地办理
客户2 A地办理
客户3 B地办理
客户1 B地办理
要得出的结果:
A地办理:2个 B地办理:1个
我用 select 值2 count(值1) from 表 group by 值2
得出来的是A地办理:2个 B地办理:2个
应该怎么样把重复的值1去掉只统计一个啊 ?

我用的是Microsoft Visual FoxPro 9.0
展开
 我来答
zongsifeng
2011-04-30 · TA获得超过209个赞
知道小有建树答主
回答量:473
采纳率:0%
帮助的人:359万
展开全部
建议你分步骤做
第一步,Select * into #b from 【表】 where 1=2
给#b 表增加一个不重复的关键字索引 【值1】索引
然后再 Select * into #b from 【表】
这样就过滤掉了【值1】的重复项
第二步,你使用select 值2 count(值1) from 表 group by 值2
既可以实现你的目标了。
追问
我觉得你说的很有道理,可是我不知道怎么做,我用的是Microsoft Visual FoxPro 9.0 ,我是个新手。。。
追答
你一样可以的,因为都是一样的SQL,而且都是微软的。FoxPro是Access先驱。是微软竞争FoxBase的工具,后来微软买了FoxBase,推出来Visual FoxPro.
ddruk
2011-04-30 · 超过18用户采纳过TA的回答
知道答主
回答量:72
采纳率:0%
帮助的人:46万
展开全部
首先,你查询的维度就不清楚。就说这个表,你有四条数据,A地和B地的都有两条,这样分组值2当然是A2个,B2个啦。你的意思是不是如果客户1在A地办理,那么不统计在B地办理的次数?
select
tmp_tbl.值2,
count(tmp_tbl.值1)
from
(select 表1.值1,
(select top 1 表2.值2 from 表 表2 where 表2.值1=表1.值1 order by 表2.值2) as '值2'
from 表 表1
group by 表1.值1,(select top 1 表2.值2 from 表 表2 where 表2.值1=表1.值1 order by 表2.值2))
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
熊冰昳5B
2011-04-30 · TA获得超过490个赞
知道小有建树答主
回答量:632
采纳率:0%
帮助的人:466万
展开全部
你数据录入结构就不清楚。一个客户只能有一个地方么?
那你的值1就不要设置可重复的。

SQL语句能办到,但是需要更新表。
追问
是这样的,客户只要在营业网点就可以办理业务,而且可以办理很多次,所以会有A地办理,B地办理都出现客户1的情况,不过不管出现多少次我只要统计一次而已
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
软小店
2011-04-30 · TA获得超过159个赞
知道小有建树答主
回答量:279
采纳率:100%
帮助的人:153万
展开全部
select 值2 distinct count(值1) from 表 group by 值2
利用:Distinct消除重复
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式