求一个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
...全文
96 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
内容概要:本研究聚焦于综合能源系统的优化调度问题,重点考虑了电解槽在实际运行中的变负载启停特性以及阶梯式碳交易机制对系统经济性与低碳性的影响。通过构建包含电、热、氢等多种能源形式耦合的综合能源系统模型,并采用Matlab进行仿真与优化解,实现了在满足系统供需平衡的前提下,降低运行成本并减少碳排放的目标。研究深入分析了电解槽的动态响应能力及其在不同负荷区间的工作效率变化,同时引入阶梯式碳交易机制,使碳价随排放量分段递增,从而更真实地反映碳市场的激励约束作用。模型综合考量了可再生能源出力不确定性、设备运行约束及多种能源转换设备的协同调度,提升了调度方案的实用性与前瞻性。; 适合人群:具备一定电力系统、能源系统或运筹优化背景,熟悉Matlab编程,从事新能源、综合能源系统、低碳调度等相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①为高比例可再生能源接入背景下,含氢能系统的综合能源系统提供精细化调度策略;②探究电解槽灵活运行特性对系统消纳绿电与降碳潜力的提升作用;③评估阶梯式碳交易政策对能源系统经济与环境双重目标的引导效果;④为相关政策制定与系统规划设计提供仿真分析工具与决策支持。; 阅读建议:此资源以Matlab代码实现为核心,建议读者结合文档中的模型描述与代码注释,逐步理解目标函数、约束条件的数学表达与编程实现逻辑,重点关注电解槽建模与碳交易机制的代码模块,并可通过调整参数进行多场景仿真对比分析,以深化对系统运行特性的认知。

57,065

社区成员

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

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