随机抽取数据库记录

/*
我想问一个SQL语句
F_Id    F_Name  
1       张三
2       李四
3       王五
这是数据库中的数据
前提是我查找数据的时候,每次都只显示两行数据,同时id=1的这行数据一直存在,另外两行数据随机的显示
*/

SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO

alter  proc GetRecordsByRand
as
begin

/*
定义存储过程所需变量
@all   保存要抽取记录的表的记录条数
@b_id  临时变量
@e_id  临时变量
*/
declare @all int
declare @b_id int
 set @b_id=0
declare @e_id int
 set @e_id=0

declare @str varchar(20)

/*
将可用于随机抽取的记录放入临时表
*/
CREATE TABLE #table (sys_id int IDENTITY (1, 1) NOT NULL ,F_Id int )
insert into #table (F_Id)
select F_Id from t_Table where F_Id<>1

--得到总共有多少记录
select @all=max(sys_id) from #table

/*
循环给两个临时变量随机赋值,直到两个变量值不一样为止

附注:实际上这里是先将主表的主键和临时表的主键关联起来,然后随机抽取临时表主键值

,再通过随机获取的临时表主键关联到主表主键,获取记录!
*/
while(@b_id=@e_id)
begin
     select @b_id=cast(rand()*@all as int),@e_id=cast(rand()*@all as int)
end

--得到最终结果集
select * from t_Table where F_Id=1
union
select * from t_Table where F_Id in (select F_Id from #table where
sys_id=@b_id or sys_id=@e_id)

--删除临时表
drop table #table

end

GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用以下SQL查询:SELECT AVG(price) FROM bookList ORDER BY RAND() LIMIT 10; 这将会告诉您从bookList表中随机抽取10条记录的平均单价。 ### 回答2: 要从bookList表中随机抽取10条记录,并计算图书的平均单价,首先我会使用数据库查询语言(如SQL)来实现这一功能。 假设表结构如下: bookList (书名, 单价) 我会编写以下SQL查询语句来随机抽取10条记录: SELECT TOP 10 单价 FROM bookList ORDER BY NEWID() 这个查询语句将返回bookList表中的随机10条记录的单价。我会将这些单价相加,并将结果除以10来计算平均单价。 接下来,我会使用编程语言(如Python)来执行以上查询语句,并进行计算。这是一个示例代码: import sqlite3 # 连接数据库 conn = sqlite3.connect('database.db') cursor = conn.cursor() # 执行查询语句 cursor.execute("SELECT TOP 10 单价 FROM bookList ORDER BY NEWID()") rows = cursor.fetchall() # 计算总价 total_price = sum(row[0] for row in rows) # 计算平均单价 average_price = total_price / 10 # 关闭数据库连接 conn.close() 最后,我会将平均单价作为结果输出。这个值代表了从随机抽取的10条记录中图书的平均价格。 ### 回答3: 要计算图书的平均单价,首先需要从名为bookList的表中随机选取10条记录。然后,我们需要将这10本图书的价格相加,并除以10得到平均单价。 具体步骤如下: 1. 随机选择10条记录:使用合适的方法从bookList表中随机选取10条记录,确保选择的记录随机的且没有重复。 2. 计算图书价格总和:将这10本图书的价格相加,得到总价格。 3. 计算平均单价:将总价格除以10,得到平均单价。这个平均单价代表了图书的平均价格。 总之,通过以上步骤,我们就可以从bookList表中随机抽取10条记录,并计算出图书的平均单价。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值