sql查询某个类型前几

面试比较常问的sql问题,sql server2005,oracle有比较好的处理方式有待以后总结下
下面是mysql下的测试查询memo分类,日期最新的前两条数据,不论dateline字段是varchar
还是int,datetime类型都可以直接比较大小排序
表如下
CREATE TABLE `table1` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(4000) NOT NULL,
`memo` varchar(5000) NOT NULL,
`dateline` varchar(10) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=UTF8;

insert into `table1`(`id`,`name`,`memo`,`dateline`) values (1,'a1','a','2010-11-01'),(2,'a2','a','2010-11-02'),(3,'a3','a','2010-11-03'),(4,'c1','c','2010-11-01'),(5,'c2','c','2010-11-02'),(6,'c3','c','2010-11-03'),(7,'b1','b','2010-11-01'),(8,'b2','b','2010-11-02'),(9,'b3','b','2010-11-03');

sql语句
SELECT * FROM table1 t1
WHERE
2>(SELECT COUNT(id) FROM table1 WHERE memo=t1.memo AND dateline<t1.dateline)
ORDER BY t1.memo, t1.dateline
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值