求一个sql,搜索比某条记录数少的第一条记录。

BILLSSJONE 2011-03-20 10:37:42
一个用户记录表,有重复的记录,搜索比某条记录数少的第一条记录。
比如下面,user1有3条记录,搜索比user1记录数少的一个用户,有user3和user2,但只取最多的一条记录,就是只取user3,请问sql怎么写?谢谢!!

CREATE TABLE `user` (
`iUKey` int(8) NOT NULL auto_increment,
`cUserName` varchar(30) NOT NULL default '',
PRIMARY KEY (`iUKey`)
) ENGINE=MyISAM;
INSERT INTO `user` VALUES (1, 'user1');
INSERT INTO `user` VALUES (2, 'user1');
INSERT INTO `user` VALUES (3, 'user1');
INSERT INTO `user` VALUES (4, 'user3');
INSERT INTO `user` VALUES (5, 'user3');
INSERT INTO `user` VALUES (6, 'user6');
INSERT INTO `user` VALUES (7, 'user6');
INSERT INTO `user` VALUES (8, 'user6');
INSERT INTO `user` VALUES (9, 'user6');
INSERT INTO `user` VALUES (10, 'user2');

结果:user3
...全文
81 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
WWWWA 2011-03-21
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 sjzzy 的回复:]
如果 ‘user1’的记录再加多一条
SQL code
insert into user values(6,'user1');

楼上的查询就是Empty set了
这条更通用:
SQL code
select cusername
from user
group by cusername
having count(*) <
(select count(*)
……
[/Quote]
1、insert into user values(6,'user1');
`iUKey`是主键,无法插入;
2、去掉6
insert into user values(null,'user1');
在楼主的测试数据中,没有COUNT(*)=3的记录,故为空集
sjzzy 2011-03-21
  • 打赏
  • 举报
回复
如果 ‘user1’的记录再加多一条
insert into user values(6,'user1');

楼上的查询就是Empty set了
这条更通用:
select cusername 
from user
group by cusername
having count(*) <
(select count(*)
from user
where cusername='user1'
)
order by count(*) desc
limit 1;

WWWWA 2011-03-21
  • 打赏
  • 举报
回复
自己解决更好

SELECT a1.* FROM (
SELECT a.cUserName,COUNT(*) AS ma FROM `user` a GROUP BY a.cUserName ) a1
INNER JOIN
(SELECT a.cUserName,COUNT(*) AS mb FROM `user` a WHERE a.cUserName='user1' GROUP BY a.cUserName ) a2
ON a1.ma=a2.mb-1

or

sELECT a.cUserName,COUNT(*) FROM `user` a GROUP BY a.cUserName
HAVING COUNT(*)=(SELECT COUNT(*)-1 FROM `user` a WHERE a.cUserName='user1' GROUP BY a.cUserName )




ACMAIN_CHM 2011-03-21
  • 打赏
  • 举报
回复
mysql> select * from user;
+-------+-----------+
| iUKey | cUserName |
+-------+-----------+
| 1 | user1 |
| 2 | user1 |
| 3 | user1 |
| 4 | user3 |
| 5 | user3 |
| 6 | user6 |
| 7 | user6 |
| 8 | user6 |
| 9 | user6 |
| 10 | user2 |
+-------+-----------+
10 rows in set (0.09 sec)

mysql> select cUserName
-> from user
-> group by cUserName
-> having count(*)=(select count(*)-1 from user where cUserName='user1')
-> limit 1;
+-----------+
| cUserName |
+-----------+
| user3 |
+-----------+
1 row in set (0.00 sec)

mysql>
BILLSSJONE 2011-03-20
  • 打赏
  • 举报
回复
我想出来了,谢谢
select distinct A.user from user A where (select count(iUKey) as getcount from user where user=A.user)<=3 order by (select count(iUKey) as getcount from user where user=A.user) desc limit 1
内容概要:本文围绕利用有限元建模方法对悬臂梁系统进行动力学建模,并设计线性二次型调节器(LQR)控制器以实现振动抑制的研究,提供了完整的Matlab代码实现方案。文中首先基于有限元法对悬臂梁进行离散化处理,建立其状态空间模型,进而应用现代控制理论中的LQR最优控制策略设计反馈控制器,通过调节权重矩阵实现系统响应速度与控制能耗之间的平衡。研究重点展示了从结构力学建模到控制系统设计的全流程仿真过程,强调了数值建模与最优控制在工程振动控制中的结合应用价值。; 适合人群:具备结构动力学、自动控制理论基础及Matlab编程能力的理工科研究生或科研人员,尤其适用于从事机械、土木、航空航天等领域中结构振动控制相关研究的专业人士。; 使用场景及目标:①掌握有限元法在连续弹性体离散化建模中的具体实现步骤;②理解LQR控制器的设计原理及其在柔性结构振动控制中的应用方法;③通过Matlab仿真平台复现并优化控制效果,服务于学术研究、课程设计或工程项目验证。; 阅读建议:建议读者结合结构力学与现代控制理论基础知识,逐步运行并调试所提供的Matlab代码,重点关注有限元刚度与质量矩阵的组装、边界条件处理、模态截断以及LQR增益解等关键环节,鼓励尝试调整系统参数与控制权重以深入理解控制性能的影响因素。

57,062

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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