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 展开
比如我的表是 “表”
值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 展开
展开全部
建议你分步骤做
第一步,Select * into #b from 【表】 where 1=2
给#b 表增加一个不重复的关键字索引 【值1】索引
然后再 Select * into #b from 【表】
这样就过滤掉了【值1】的重复项
第二步,你使用select 值2 count(值1) from 表 group by 值2
既可以实现你的目标了。
第一步,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.
展开全部
首先,你查询的维度就不清楚。就说这个表,你有四条数据,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))
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))
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你数据录入结构就不清楚。一个客户只能有一个地方么?
那你的值1就不要设置可重复的。
SQL语句能办到,但是需要更新表。
那你的值1就不要设置可重复的。
SQL语句能办到,但是需要更新表。
追问
是这样的,客户只要在营业网点就可以办理业务,而且可以办理很多次,所以会有A地办理,B地办理都出现客户1的情况,不过不管出现多少次我只要统计一次而已
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select 值2 distinct count(值1) from 表 group by 值2
利用:Distinct消除重复
利用:Distinct消除重复
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询