SQL查询去除重复记录

ID姓名省份职业1张三湖南无业2张三河南无业3李四深圳无业4赵五广东作家执得查询:select*from表名where职业="无业"得到的结果是1张三湖南无业2张三河南无... ID 姓名 省份 职业
1 张三 湖南 无业
2 张三 河南 无业
3 李四 深圳 无业
4 赵五 广东 作家

执得查询:select * from 表名 where 职业="无业"
得到的结果是
1 张三 湖南 无业
2 张三 河南 无业
3 李四 深圳 无业

但我想要的结果是:只显示姓名不重复的。是湖南的张三还是河南的张三都无所谓
1 张三 湖南 无业
3 李四 深圳 无业

请问各位高的这条查询语句怎么写?
展开
 我来答
cipchk
推荐于2016-11-01 · TA获得超过304个赞
知道小有建树答主
回答量:478
采纳率:0%
帮助的人:275万
展开全部
select * from (
select min(id) id from 表名 where 职业="无业"
group by 姓名
) a
inner join 表名 b on a.id = b.id
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
badkano
2011-03-19 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144776 获赞数:885365
团长

向TA提问 私信TA
展开全部
select min(id) as id,姓名,省份,职业 from 表名 group by 姓名,省份,职业
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wangzhiqing999
2011-03-19 · TA获得超过1.6万个赞
知道大有可为答主
回答量:7048
采纳率:100%
帮助的人:3326万
展开全部
SELECT
[姓名],
[省份],
[职业]
FROM
(
SELECT
ROW_NUMBER () OVER (PARTITION BY [姓名] ORDER BY [省份]) AS id,
表名.*
FROM
表名
WHERE
[职业] = '无业'
AND ( SELECT
COUNT(1)
FROM
表名 subTopnTest
WHERE
表名.[姓名] = subTopnTest.[姓名]
AND 表名.[职业] = subTopnTest.[职业]
AND 表名 .[省份] < subTopnTest.[省份]
) < 1
) tmpView
WHERE
id = 1

参考资料: http://hi.baidu.com/wangzhiqing999/blog/item/6259589117ca495fd0135e69.html

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
来自鼎湖峰国色天香的牡丹
2011-03-19 · TA获得超过158个赞
知道小有建树答主
回答量:126
采纳率:0%
帮助的人:84.3万
展开全部
select distinct(*)
from 表名
where 职业="无业"

上边distinct 就是去除重复的关键字
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
西安_白小鹏
2011-03-19 · TA获得超过436个赞
知道小有建树答主
回答量:127
采纳率:0%
帮助的人:90.9万
展开全部
select * from 表名 where id in (select min(id) from 表名 where 职业="无业" group by 姓名)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式