SQL查询去除重复记录
ID姓名省份职业1张三湖南无业2张三河南无业3李四深圳无业4赵五广东作家执得查询:select*from表名where职业="无业"得到的结果是1张三湖南无业2张三河南无...
ID 姓名 省份 职业
1 张三 湖南 无业
2 张三 河南 无业
3 李四 深圳 无业
4 赵五 广东 作家
执得查询:select * from 表名 where 职业="无业"
得到的结果是
1 张三 湖南 无业
2 张三 河南 无业
3 李四 深圳 无业
但我想要的结果是:只显示姓名不重复的。是湖南的张三还是河南的张三都无所谓
1 张三 湖南 无业
3 李四 深圳 无业
请问各位高的这条查询语句怎么写? 展开
1 张三 湖南 无业
2 张三 河南 无业
3 李四 深圳 无业
4 赵五 广东 作家
执得查询:select * from 表名 where 职业="无业"
得到的结果是
1 张三 湖南 无业
2 张三 河南 无业
3 李四 深圳 无业
但我想要的结果是:只显示姓名不重复的。是湖南的张三还是河南的张三都无所谓
1 张三 湖南 无业
3 李四 深圳 无业
请问各位高的这条查询语句怎么写? 展开
展开全部
select * from (
select min(id) id from 表名 where 职业="无业"
group by 姓名
) a
inner join 表名 b on a.id = b.id
select min(id) id from 表名 where 职业="无业"
group by 姓名
) a
inner join 表名 b on a.id = b.id
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select min(id) as id,姓名,省份,职业 from 表名 group by 姓名,省份,职业
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
[姓名],
[省份],
[职业]
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select distinct(*)
from 表名
where 职业="无业"
上边distinct 就是去除重复的关键字
from 表名
where 职业="无业"
上边distinct 就是去除重复的关键字
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select * from 表名 where id in (select min(id) from 表名 where 职业="无业" group by 姓名)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询