挑战:用最少的sql语句查出某个字段值相同数大于2的所有记录

zhhfy 2005-06-16 02:36:25
问题:用最少的sql语句查出某个字段值相同数大于2的所有记录

例如我有一个表:emplo(id,name,phone,age)
如何把存在年龄相同的人数大>2的所有记录一次性提出。
如现有:
1 张1 55555 1
2 张2 55555 10
3 张3 55555 10
4 张4 55555 20
5 张5 55555 20
6 张6 55555 30
7 张7 55555 20
一次性选出记录:
2 张2 55555 10
3 张3 55555 10
4 张4 55555 20
5 张5 55555 20
7 张7 55555 20
...全文
852 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
yifan600 2005-06-17
  • 打赏
  • 举报
回复
根据上面人家写的自己琢磨去
zhhfy 2005-06-17
  • 打赏
  • 举报
回复
更正一下:
“如何把存在年龄相同并且所在公司相同的人数>2的所有记录一次性提出。”
更正为:
“如何把存在年龄相同并且所在公司相同的人数>=2的所有记录一次性提出。”
zhhfy 2005-06-17
  • 打赏
  • 举报
回复
昨天大家给出的解答思路基本正确,完全正确的是如下两为大侠:“ancyzhou”和 “libin_ftsafe(子陌红尘)”,比较好的是后面一位给出的解答,因为他已经满足了我今天提出的问题,关于今天的问题大家能否给出更好的解答。

问题2:

emplo(id,name,phone,age,company)
如何把存在年龄相同并且所在公司相同的人数大>2的所有记录一次性提出。
如现有数据:
1 张1 55555 1 company1
2 张2 55555 10 company2
3 张3 55555 10 company2
4 张4 55555 20 company4
5 张5 55555 20 company4
6 张6 55555 30 company6
7 张7 55555 20 company4
8 张8 55555 20 company8
9 张9 55555 20 company8
10 张10 55555 20 company10
11 张11 55555 20 company11

一次性选出记录:
2 张2 55555 10 company2
3 张3 55555 10 company2
4 张4 55555 20 company4
5 张5 55555 20 company4
7 张7 55555 20 company4
8 张8 55555 20 company8
9 张9 55555 20 company8
wscft 2005-06-17
  • 打赏
  • 举报
回复
-- 在libin_ftsafe(子陌红尘)的基础上面改一下,
-- 这个语句简单一点
select distinct a.*
from emplo a, emplo b
where a.id != b.id and a.age = b.age and a.company = b.company
lsxaa 2005-06-16
  • 打赏
  • 举报
回复
最少的sql语句,

写的字母最少???
caoziming0525 2005-06-16
  • 打赏
  • 举报
回复
select age from emplo group by age having cuont(*)>=2
哈哈,我的最短
ghzzs 2005-06-16
  • 打赏
  • 举报
回复
select * from emplo where age in(select age,count(id) countid from emplo group by age where countid>=2)
子陌红尘 2005-06-16
  • 打赏
  • 举报
回复
楼主是要>2的数据,怎么把=2的数据也在结果集中列出来误倒偶啊,:(
wangdehao 2005-06-16
  • 打赏
  • 举报
回复
select * from emplo where age in (select age from emplo group by age having count(age)>2)
Frewin 2005-06-16
  • 打赏
  • 举报
回复
已有满地的答案,呜呜
tony0115 2005-06-16
  • 打赏
  • 举报
回复
来晚了, Leftie(左手,为人民币服务) 已给出答案
ancyzhou 2005-06-16
  • 打赏
  • 举报
回复
where改成having
select * from emplo where age in(select age from emplo group by age havingcount(1)>2)
暂时还没有想出更简单的,好像用left jou
子陌红尘 2005-06-16
  • 打赏
  • 举报
回复
select
a.*
from
emplo a
where
exists(select 1 from emplo where id!=a.id and age=a.age)
饮水需思源 2005-06-16
  • 打赏
  • 举报
回复
select * from emplo where age in (select age from emplo group by age having(age)>2)
ancyzhou 2005-06-16
  • 打赏
  • 举报
回复
select * from emplo where age in(select age from emplo group by age where count(1)>2)

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧