# Sample

LOAD 或 SELECT 语句的 sample 前缀用于从数据源载入记录的随机样本。

语法：

Sample p ( loadstatement | selectstatement )

所计算的表达式不定义将加载到 Qlik Sense 应用程序中的数据集中记录的百分比，而是定义将读取的每个记录加载到应用中的概率。换句话说，指定值 `p = 0.5`并不意味着将加载总记录数的 50%，而是意味着每个记录将有 50% 的机会加载到 Qlik Sense 应用程序中。

参数

| 参数 | 描述 |
| --- | --- |
| p | 用于评估大于 0，且小于或等于 1 的数字的任意表达式。该数字表示未来读取给定记录的可能性。<br><br>所有记录都将被读取，但只有其中的一部分会加载到 Qlik Sense 中。 |

## 适合使用 Sample 的情况

当您希望对来自大表的数据进行采样，以了解数据、分布或字段内容的性质时，示例非常有用。由于它带来了数据子集，数据加载速度更快，从而可以更快地测试脚本。与 `First` 不同，`Sample` 函数从整个表中获取数据，而不是仅限于前几行。在某些情况下，这可以提供更准确的数据表示。

以下示例显示了 `Sample` 脚本前缀的两种可能用法：

`Sample 0.15 SQL  SELECT  * from Longtable;` `Sample(0.15) 
 LOAD * from Longtab.csv;`

## 区域设置

除非另有规定，本主题中的示例使用以下日期格式：MM/DD/YYYY。日期格式已经在数据加载脚本中的 `SET DateFormat` 语句中指定。由于区域设置和其他因素，系统中的默认日期格式可能有所不同。您可以更改以下示例中的格式以满足您的要求。或者，您可以更改加载脚本中的格式以匹配这些示例。有关更多信息，请参阅[修改应用程序和脚本的区域设置](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Apps/regional-settings-in-apps.htm)。

应用程序中的默认区域设置基于用户配置文件。这些区域格式设置与 Qlik Cloud 用户界面中显示的语言无关。Qlik Cloud 将以与您使用的浏览器相同的语言显示。

如果你是应用程序创建者，你可以为自己创建的应用程序设置默认区域。有关更多信息，请参阅[设置 Qlik Cloud Analytics 中创建应用程序和脚本所用的首选区域设置](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/UserInterface/Languages.htm#Setting)。

## 示例 1 – 内联表示例

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Sample.htm)

#### 加载脚本和结果

概述

在本例中，脚本将包含七条记录的数据集中的数据样本集加载到内联表中名为 `Transactions` 的表中。

加载脚本

```
Transactions:
SAMPLE 0.3
LOAD 
* 
Inline [
id, date, amount
1, 08/30/2018, 23.56
2, 09/07/2018, 556.31
3, 09/16/2018, 5.75
4, 09/22/2018, 125.00
5, 09/22/2018, 484.21
6, 09/22/2018, 59.18
7, 09/23/2018, 177.42
];
```

结果

加载数据并打开工作表。创建新表并将这些字段添加为维度：

* `id`

* `amount`

添加以下度量：

`=sum(amount)8`

结果表

| id | 日期 | =Sum(amount) |
| --- | --- | --- |
| 2 | 09/07/2018 | 556.31 |
| 4 | 09/22/2018 | 125 |
| 1 | 08/30/2018 | 23.56 |
| 3 | 09/16/2018 | 5.75 |

在本例中使用的加载迭代中，读取了所有七条记录，但只有四条记录被加载到数据表中。任何重新运行的加载都可能导致不同的数量，以及不同的记录集被加载到应用程序中。

## 示例 2 – 来自自动生成表格的示例

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Sample.htm)

#### 加载脚本和结果

概述

在本例中，使用 `Autogenerate` 创建了包含字段 `date`、`id` 和 `amount` 的 100 条记录的数据集。但是，使用了 `Sample` 前缀，其值为 0.1。

加载脚本

```
SampleData:
Sample 0.1
LOAD
RecNo() AS id,
MakeDate(2013, Ceil(Rand() * 12), Ceil(Rand() * 29)) as date,
Rand() * 1000 AS amount

Autogenerate(100);
```

结果

加载数据并打开工作表。创建新表并将这些字段添加为维度：

* `id`

* `amount`

添加以下度量：

结果表

| id | 日期 | =Sum(amount) |
| --- | --- | --- |
| 48 | 9/28/2013 | 763 |
| 20 | 5/15/2013 | 752 |
| 19 | 11/8/2013 | 657 |
| 25 | 3/24/2013 | 522 |
| 27 | 8/23/2013 | 389 |
| 81 | 6/1/2013 | 53 |
| 100 | 8/15/2013 | 17 |

在本例中使用的加载迭代中，从创建的数据集中加载了七条记录。同样，任何重新运行的加载都可能导致不同的数量，以及不同的记录集被加载到应用程序中。

## 了解详情

* [Load](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Load.htm)
* [Select](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm)