JMP 中最重要的 SQL 语句是 SELECT 语句。该语句指示数据库从数据源中获取哪些行。当您完成编写 SQL 语句以查询数据库中针对 Solubility.jmp 样本数据表的过程之后,实际就是向数据源发送了以下 SQL 语句:
* 运算符是“所有列”的简写形式。这样,该语句即向数据库发送了一个请求,请求从指定的数据表中返回所有列。
JMP 提供一种图形化的方式来构造简单的 SELECT 语句,这样就不必再键入实际的 SQL。要从数据源中选择特定列,请在列列表中突出显示这些列。
有时,您希望从数据源中仅获取唯一记录。也就是说,您希望消除重复记录。要启用该功能,请使用 DISTINCT 关键字。
您可以按数据库中的一个或多个字段对结果排序。使用 ORDER BY 命令指定要排序的变量。
选择所有字段,按 LABELS 变量对生成的数据表排序。若要指定更多变量作为排序依据,请将其添加到逗号分隔列表中。
WHERE 语句放置在 FROM 语句之后,可使用以下任意逻辑运算符。
获取 LABELS 列的值为 Methanol、Ethanol 或 Propanol 的所有行。
获取 ETHER 值介于 0 和 2 之间的所有行。
使用 LIKE 语句,您可以选择与给定字符串相似的值。用 % 来表示可包含任何值的字符串。例如,您可能想要从 Solubility 数据中选择所有乙醇类的化学品,即:以 –ol 结尾的化学品。下面的 SQL 语句可完成该任务。
% 运算符可放置于 LIKE 语句中的任何位置。下面的示例提取包含以 M 开头且以 OL 结尾的标签的所有行:
•
|
•
|
下面的语句返回 ETHER 值大于 1 的行数:
|
•
|
下面的语句可为您计算乙醇类数据的 OCTANOL 平均值:
|
GROUP BY 和 HAVING 命令特别适用于聚合函数。这两个命令支持您基于数据集中某个字段的值多次执行聚合函数。
•
|
SELECT COUNT(ETHER) FROM "Solubility" GROUP BY (ETHER) 返回一列数据,列中每个条目对应 ETHER 的一个水平。
|
•
|
SELECT COUNT(ETHER) FROM "Solubility" WHERE OCTANOL > 0 GROUP BY (ETHER) 的作用与上一语句相同,只不过是为 OCTANOL > 0 的行计算记录数。
|
在返回计数之外还返回包含 ETHER 水平的一列。
聚合函数还有助于计算要在 WHERE 语句中使用的值。例如,您可能希望获取大于 ETHER 平均值的所有值。换言之,您希望找到 ETHER 的平均值,然后仅选择值大于该平均值的记录。请记住 SELECT AVG(ETHER) FROM "Solubility" 语句可获取您想要的平均值。所以,正确的 SQL 命令会在 WHERE 条件语句中使用上述语句:
构造查询之后,您可能希望以后重新运行该查询,但不想在每次想要使用该查询时都手动键入它。此时,您可以将该查询导出至外部文件。请在图 3.46所示的窗口中点击导出 SQL 按钮。这将调出一个窗口,您可在其中将 SQL 查询另存为文本文件。
JMP 可以帮助在 ODBC 导入期间生成 SQL 查询的 WHERE 子句。它提供 WHERE 子句编辑器,可帮助您生成使用 SQL 常用功能的基本表达式,同时允许使用供应商特定的函数。例如,您不必了解 SQL 是使用“=”还是“==”来进行比较,也不必了解是使用 avg() 还是 average() 来求平均值。
2.
|
3.
|
点击 Where 按钮。
|
图 3.47 WHERE 子句编辑器