随机选取几条记录

SQL Server 随机采样示例

declare @t table(工号 int, 货号 varchar(10),   数值 int)
insert @t select
1 ,   'A1'      ,369  union all select
2 ,   'B1'      ,50  union all select
3 ,   'C1'      ,49  union all select
1 ,   'B1'      ,199  union all select
2 ,   'D1'     , 158

declare @t1 table( 货号 varchar(10),   数值 int)

 

declare @n int
set @n=3          --这里你可以任意设置你要的记录数 
set rowcount @n   --等同于select top 3  ....
      --set rowcount 在不久的将来将去掉,所以尽量少用

insert into @t1
select 货号,数值
from @t
order by NEWID()
set rowcount 0
----------------
select * from @t1

货号         数值
---------- -----------
A1         369
B1         199
B1         50

(3 行受影响)

在 ArcGIS 10.2.2 中,可以通过以下几种方法从 shapefile 中随机选择 100 条记录: ### 方法一:使用“Select Layer By Attribute”和 Python 随机函数 1. 在 ArcMap 中加载 shapefile。 2. 打开属性表,确保数据中存在一个唯一标识字段(例如 `FID` 或 `OBJECTID`)。 3. 使用 **Select Layer By Attribute** 工具,结合 Python 表达式随机选择记录。可以在 SQL 查询中使用以下表达式: ```python import random selected_ids = random.sample(range(0, 1000), 100) # 假设总记录数大于1000 "OBJECTID" in {0} ``` 将 `selected_ids` 替换为实际生成的随机 ID 列表。 ### 方法二:使用“Create Random Points”工具 1. 如果目标是生成一组随机点,可以使用 **Create Random Points** 工具生成指定数量的随机点。 2. 该工具位于 **ArcToolbox > Data Management Tools > Sampling** 中。 3. 设置输出位置和点数量(例如 100),然后运行工具。 ### 方法三:使用 Python 脚本 1. 可以通过编写 Python 脚本直接操作 shapefile,随机选择 100 条记录。示例代码如下: ```python import arcpy import random # 设置输入 shapefile 路径和唯一字段名 input_shapefile = "path_to_your_shapefile.shp" unique_field = "OBJECTID" # 获取所有记录的唯一字段值 with arcpy.da.SearchCursor(input_shapefile, [unique_field]) as cursor: all_ids = [row[0] for row in cursor] # 随机选择 100 条记录 selected_ids = random.sample(all_ids, 100) # 构建查询表达式 query = "{0} IN ({1})".format(unique_field, ", ".join(map(str, selected_ids))) # 使用 Select Layer By Attribute 工具应用查询 arcpy.SelectLayerByAttribute_management("your_layer_name", "NEW_SELECTION", query) ``` ### 方法四:使用“Summary Statistics”和“Random Selection” 1. 使用 **Summary Statistics** 工具统计所有记录。 2. 结合 **Random Selection** 工具选择 100 条记录。 ### 方法五:使用“Make Feature Layer”和“Select Layer By Attribute” 1. 创建一个图层: ```python arcpy.MakeFeatureLayer_management(input_shapefile, "temp_layer") ``` 2. 使用 **Select Layer By Attribute** 工具结合随机表达式选择记录。 ### 注意事项 - 确保 shapefile 的属性表中存在唯一标识字段以便随机选择。 - 如果数据量较小(例如少于 100 条记录),需要调整随机选择的数量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值