得到固定数目记录的分组数据查询求解

summe 2005-10-26 06:54:30
如果利用一段SQL查询实现:得到固定条数记录的分组结果记

例如;一个表中;A字段用来分组;其值为 “综合栏目” 、“热点新闻”、“健康指南”等
每个栏目类型均可能有多条记录。
我想要得到一个结果集;用A字段来分组;而每种区分的记录只取5条。
例如表中“综合栏目”的新闻有18条;“热点新闻”的新闻有13条;“健康指南”的新闻有4条;

需要取得的结果集是:

“综合栏目” 新闻内容1----------------
“综合栏目” 新闻内容2----------------
“综合栏目” 新闻内容3----------------
“综合栏目” 新闻内容4----------------
“综合栏目” 新闻内容5----------------
“热点新闻” 新闻内容1----------------
“热点新闻” 新闻内容2----------------
“热点新闻” 新闻内容3----------------
“热点新闻” 新闻内容4----------------
“热点新闻” 新闻内容5----------------
“健康指南” 新闻内容2----------------
“健康指南” 新闻内容3----------------
“健康指南” 新闻内容4----------------
“健康指南” 新闻内容5----------------




请问各位有什么高招;试图用一段SQL来实现
...全文
103 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxzm1001 2005-10-27
  • 打赏
  • 举报
回复
select * from tablename t where uniquecolumn in(select top 5 uniquecolumn from tablename group by A)
zxbyhcsdn 2005-10-27
  • 打赏
  • 举报
回复
经典问题了
quhaihua 2005-10-26
  • 打赏
  • 举报
回复
select * from [table] t1
where b in(
select top 5 t2.b from [table] t2 where t2.A=t1.A order by t2.B)
)
zlp321002 2005-10-26
  • 打赏
  • 举报
回复
--取每一个栏目中的最新5条记录
select * from 表 t
where B in (select top 5 B
from 表
where A=t.A
order by 时间字段)
vivianfdlpw 2005-10-26
  • 打赏
  • 举报
回复
select * from 表 t
where 唯一字段 in (select top 5 唯一字段
from 表
where A=t.A
order by 唯一字段)

27,582

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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