如题,
表结构如下:
DROP TABLE IF EXISTS `tmp1`;
CREATE TABLE `tmp1` (
`id` int(11) DEFAULT NULL,
`bid` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into tmp1(id,bid)
values(1,1),(2,1),(3,2),(4,2);
id bid
1, 1
2, 1
3, 2
4, 2
求相同的bid 随机取一行数据(随机)
形成结果集如下:(其中的一种情况)
id bid
1,1
4,2
表结构如下:
DROP TABLE IF EXISTS `tmp1`;
CREATE TABLE `tmp1` (
`id` int(11) DEFAULT NULL,
`bid` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into tmp1(id,bid)
values(1,1),(2,1),(3,2),(4,2);
id bid
1, 1
2, 1
3, 2
4, 2
求相同的bid 随机取一行数据(随机)
形成结果集如下:(其中的一种情况)
id bid
1,1
4,2
[征集]分组取最大N条记录方法征集,及散分....
CREATE TABLE ddqq AS SELECT *,@num:=@num+1 AS pm1 FROM (
SELECT * FROM `tmp1` ORDER BY RAND()) a2;SELECT * FROM ddqq a
WHERE NOT EXISTS(SELECT 1 FROM ddqq b
WHERE a.bid=b.bid AND a.pm1<b.pm1)