sql重复数据只显示一条 并且统计重复次数
sql重复数据只显示一条并且统计重复次数姓名身份证家庭住址银行帐号备注小唐1111珠海7777小李2222广州8888小媚3333香港9999小唐1111澳门77881姓...
sql重复数据只显示一条 并且统计重复次数
姓名 身份证 家庭住址 银行帐号 备注
小唐 1111 珠海 7777
小李 2222 广州 8888
小媚 3333 香港 9999
小唐 1111 澳门 7788
1姓名和身份证是唯一的,2一个人是可以有多个 家庭住址和银行帐号3备注 显示最前的,4重复条数 就是显示 姓名和身份证 相同的数据,只显示其中一条;
最终的样式
姓名 身份证 家庭住址 银行帐号 备注 重复条数
小唐 1111 珠海 7777
小李 2222 广州 8888
小媚 3333 香港 9999 展开
姓名 身份证 家庭住址 银行帐号 备注
小唐 1111 珠海 7777
小李 2222 广州 8888
小媚 3333 香港 9999
小唐 1111 澳门 7788
1姓名和身份证是唯一的,2一个人是可以有多个 家庭住址和银行帐号3备注 显示最前的,4重复条数 就是显示 姓名和身份证 相同的数据,只显示其中一条;
最终的样式
姓名 身份证 家庭住址 银行帐号 备注 重复条数
小唐 1111 珠海 7777
小李 2222 广州 8888
小媚 3333 香港 9999 展开
4个回答
展开全部
select * from (select 姓名,身份证,家庭住址,银行帐号,备注,row_number() over (partition by 姓名,身份证 order by numrow desc) ss
from
(select 姓名,身份证,家庭住址,银行帐号,备注,row_number() over (partition by 姓名,身份证 order by 姓名,身份证) numrow from 表名) aa ) bb
where ss='1'
有点麻烦,不过可以实现
追问
我已经知道如何查询了,幸苦了,我用的是DB2数据库!我发一发我做的吧!
select
*
S.num
from A mai,
(select min(ID) as id,count(*) as num from A group by name) S
WHERE mai.ID= S.id
追答
我用的oracle数据库,嘿嘿,我想复杂了。这样的话就不是严格按照姓名和身份证统计的了。你实现功能就好。
展开全部
你就没说明白
select 字段,count(*) from 表名 group by 字段
看看是这意思不?
字段和表名自己替换下
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select 姓名,身份证,max(家庭住址) 家庭住址,max(银行帐号) 银行帐号,max(备注) 备注,count(*) 重复条数
from tabname
group by 姓名,身份证
大致这样(不过家庭住址、银行帐号、备注 不是取最前面的,而是取了一个最大的)。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果只是按你的结果得到数据,则语句是:
select
名字,max(金额)
金额
from
表
group
by
名字
但感觉金额应该是统计的,比如张三显示230,则应该是
select
名字,sum(金额)
金额\
from
表
group
by
名字
select
名字,max(金额)
金额
from
表
group
by
名字
但感觉金额应该是统计的,比如张三显示230,则应该是
select
名字,sum(金额)
金额\
from
表
group
by
名字
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询