一个select 查询语句,头晕了

relive8 2004-05-02 02:43:12
表结构
CREATE TABLE [papers] (
[id] [int] NOT NULL ,
[course] [int] NOT NULL ,
[chapter] [int] NOT NULL ,
[ken] [int] NOT NULL ,
[kind] [int] NOT NULL ,
[content] [varchar] (600) COLLATE Chinese_PRC_BIN NOT NULL ,
[answer] [varchar] (800) COLLATE Chinese_PRC_BIN NOT NULL ,
[difficulty_que] [float] NOT NULL ,
[point] [float] NOT NULL ,
[date] [smalldatetime] NOT NULL
) ON [PRIMARY]
GO
我要在此表中对每一类(kind)随机抽取自己规矩的记录数,并且满足对每一类所设定的条件,抽取的记录总和point为100!
比如:kind(类别)有:1类 ,2类,3类……
我要随机抽取1类里的3条记录满足一定条件,抽取2类2条记录,抽取3类4条记录都要满足一定条件,抽出的这些记录的总分是100
...全文
72 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 2004-05-02
  • 打赏
  • 举报
回复
你规定了每类的记录数,这个100怎么算?
relive8 2004-05-02
  • 打赏
  • 举报
回复
谢谢邹键大虾了~~~~~~~~~~~~~~~

随机已经实现了,不知道得到的总和为100能不能包括实现呢
zjcxc 2004-05-02
  • 打赏
  • 举报
回复
--这样写:

select * from(select top 3 *,aa=newid() from papers where kind='1类' and ...其他条件 order by newid())a
union all
select * from(select top 2 *,aa=newid() from papers where kind='2类' and ...其他条件 order by newid())a
union all
select * from(select top 4 *,aa=newid() from papers where kind='3类' and ...其他条件 order by newid())a
relive8 2004-05-02
  • 打赏
  • 举报
回复
最好能抽出的所有记录point总和为100
relive8 2004-05-02
  • 打赏
  • 举报
回复
可是我要随即抽取呀,
比如‘1类’中随机抽取 3条
‘2类’中随机抽取 3 条
‘3类’中随机抽取 4条
然后组成一个数据集合
zjcxc 2004-05-02
  • 打赏
  • 举报
回复
因为你要对每个类做控制,所以没有什么简便的方法,而且你的参数不知道怎么传递?
zjcxc 2004-05-02
  • 打赏
  • 举报
回复

select top 3 from papers where kind='1类' and ...其他条件
union all
select top 2 from papers where kind='2类' and ...其他条件
union all
select top 4 from papers where kind='3类' and ...其他条件

relive8 2004-05-02
  • 打赏
  • 举报
回复
各位SQL大吓快来帮帮忙呀~~~~~~~~~~~~~~今天五二,先自己顶一下!

22,301

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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