tags page_id
a 5
a 6
a 8
a 9
a 11
a 15
b 2
b 4
c 1
c 3
c 12
c 14
c 16
d 7
d 10
d 13
d 17如何group by,每个group获取3条记录,如果少于3条的,有多少条返回多少条记录。
另外我想要效率高点的语句,因为我总计有40万条记录,大概占了6500个group。是否还需要建立相应的索引?谢谢。a 5
a 6
a 8
b 2
b 4
c 1
c 3
c 12
d 7
d 10
d 13
a 5
a 6
a 8
a 9
a 11
a 15
b 2
b 4
c 1
c 3
c 12
c 14
c 16
d 7
d 10
d 13
d 17如何group by,每个group获取3条记录,如果少于3条的,有多少条返回多少条记录。
另外我想要效率高点的语句,因为我总计有40万条记录,大概占了6500个group。是否还需要建立相应的索引?谢谢。a 5
a 6
a 8
b 2
b 4
c 1
c 3
c 12
d 7
d 10
d 13
解决方案 »
- 一个复杂的SQL拼接问题, 请教
- 我建立了customer的表,要约束输入是email 格式的值,不让他输入不符合的字符,该怎么弄?
- 用mysqlbackupRelease1.2.1.2备份出来的数据库,如何还原?
- mysql数据库 insert问题~~
- 存储过程 问下2者之间的差别 ??? (或者是否有差别)
- 求教一条SQL语句
- 100分!mysql误操作删除
- 请教:这个日期查询的SQL如何写?
- 可以在c++程序运行的时候动态的指定连接某个MYSQL的数据库吗
- mysql报错 Packets out of order. Expected 1 received 46. Packet size=3158064
- mysql创建唯一性索引查询时sqlyog挂掉?
- Mysql默认编码是latin1,插入中文乱码
select tags ,page_id from
(
select tags ,page_id,(select count(1) from tb_name where a.tags = tags and page_id <= a.page_id) rn
from tb_name a
) t
where t.rn<=3;
[征集]分组取最大N条记录方法征集,及散分....
where 3>(select count(*) from table1 where tags=t.tags and page_id<t.page_id)
SELECT a.tags, a.page_id from ttl a left join ttl b on a.tags=b.tags and a.page_id>=b.page_id
group by a.tags, a.page_id
having count(*)<=3