如何删除表中相同的数据?亲爱的,
每次我进入菜单哪一“行”删除相同的数据,
我想自动删除表中相同的数据,不知道JSL怎么写
我该怎么写?
Re: 如何删除表中相同的数据?我刚刚从头开始,这对我来说很有效。 尝试了 MIn() 和 Max(),它给出了我所期望的结果。
我确实注意到了几件事:
1. 当我告诉你我添加了第 1 列时,我忘记提及我将其初始化为顺序数字。 IE 我基本上复制了行号。
2. 注意到您在表名称周围使用了括号,并且表名称以“$”结尾。 这些是 MS 对 SQL 的看法。 尝试消除这些。
3. 不记得我是否告诉过您要点击自定义 sql 窗口中的更新按钮,但似乎在运行查询之前对我有帮助。
Re: 如何删除表中相同的数据?
我很遗憾地告诉你,这行不通
警报是圆参考;
选择 t1.*
从 [溶解度$] t1,
(选择不同的“批号”, Min("第 1 列") as "第 1 列"来自[溶解度$]按“批号”分组)AS t2
WHERE t1."第 1 列" = t2."第 1 列"
Re: 如何删除表中相同的数据?我继续通过将子查询作为表来重新编写它,以便您可以看到差异。 有时,一种方法比另一种方法效果更好或更清晰。 这里的“t1”和“t2”是别名。
选择 t1.*
从溶解度 t1,
( SELECT DISTINCT "LOT NO", Min("Column 1") AS "Column 1" FROM Solubility GROUP BY "LOT NO" ) AS t2
WHERE t1."第 1 列" = t2."第 1 列"
;
Re: 如何删除表中相同的数据?犯了一个小错误 - 使用 Min 将返回您的“删除”表。Re: 如何删除表中相同的数据?您的问题是您在所有溶解度列中使用 DISTINCT。 因为对于 LOT NO 1700002,您在列异常内容中具有唯一值(即“电断点”、“针孔”),所以您会不断返回相同的行,因为每一行在列集上都是唯一的。
如果我没记错的话,Excel(即M$)sql有第一个或最后一个版本,SAS(即JMP)没有(尽管在当前版本下可能已经改变)。
这是我写的代码,似乎可以回答您的问题:
选择 t2.*
来自 溶解度 t2
WHERE t2.“第 1 列”IN (
选择不同的 t1。“第 1 列”
来自 溶解度 t1
按 t1 分组。“批次号”
HAVING t1."第 1 列" = Max(t1."第 1 列"));
我在 JMP 中打开了 Solubility
我添加了一列,即 Column 1(将其视为排序/顺序列)
接下来我进入表下的 SQL 查询构建器
选择溶解度作为表后,我选择了“column 1”和“lot no”,我将在相关子查询(即临时表)中使用它,并仅检查 DISTINCT Rows,然后单击添加
现在,我单击查询名称旁边的三角形,然后选择“转换为 Sql”。 这将让我编写代码(30 年的 SAS - 单击并指向只能让您到目前为止)。
我将代码编辑为上面给您的内容,运行查询,更正出现的任何错误,直到它正确运行。
基本上,我在上面提到的相关子查询的第 1 列上匹配了您修改后的溶解度。 子查询通过获取每组“批次号”的最大列 1,返回唯一的“列 1”。 我在这里使用 Max() 作为最后一个的替代品。 Min() 可以用作 FIRST 的替代品。
我也可以将其作为另一个表的子查询的 JOIN 来完成。 我们把这个留到明天再说。
我知道这可能非常深奥,但如果您有任何问题请告诉我,我会尽力回答。
RCW
Re: 如何删除表中相同的数据?谢谢
附带的excel文件“溶解度”是我想要修改的原始数据
附件“data.dsn”是数据库
我想要的结果是名为“删除”的 excel
我写“从 [Solubility$] 中选择不同的 [批次号]、代码、[异常内容]”
删除“LOT NO”中相同的数据
但这行不通。
Re: 如何删除表中相同的数据?JMP 查询生成器允许您将 JSL 添加到查询中。请参阅第 121 页上的文档
帮助==>书籍==>使用JMP
它将允许您在查询中添加代码,以便在每次提取数据时自动删除所需的行。
Re: 如何删除表中相同的数据?谢谢
我使用JMP菜单的“Built Query”从数据库获取数据,
@tx尼尔森写道:
当您从数据库打开数据时,您必须将 JSL 添加到用于检索数据的脚本中。您使用什么方法从数据库获取数据?
Re: 如何删除表中相同的数据?当您从数据库打开数据时,您必须将 JSL 添加到用于检索数据的脚本中。您使用什么方法从数据库获取数据?
Re: 如何删除表中相同的数据?谢谢,
这数据表来自数据库,每次打开都会刷新数据。
所以我期望JSL会自动重新执行以删除表中出现的相同数据。
@tx尼尔森写道:
请澄清。我很困惑。在您附加的数据表中,有两列,“第一”和“第二”。如果您想根据在名为“first”的列中找到“A”的值来删除行,JSL 将是:
dt = Current Data Table();
dt << Select Where( :first == "A") << Delete Rows;
如果您想根据名为“second”的列中的“A”值删除行,则 JSL 将为:
dt = Current Data Table();
dt << Select Where( :second == "A") << Delete Rows;
所以当你说“但是如果我刷新数据“……您是否表示,当您重新打开数据表时?您是否期望当您再次打开数据表时 JSL 会自动重新执行?
再次打开数据表时的数据。
Re: 如何删除表中相同的数据?请澄清。我很困惑。在您附加的数据表中,有两列,“第一”和“第二”。如果您想根据在名为“first”的列中找到“A”的值来删除行,JSL 将是:
dt = Current Data Table();
dt << Select Where( :first == "A") << Delete Rows;
如果您想根据名为“second”的列中的“A”值删除行,则 JSL 将为:
dt = Current Data Table();
dt << Select Where( :second == "A") << Delete Rows;
所以当你说“但是如果我刷新数据“……您是否表示,当您重新打开数据表时?您是否期望当您再次打开数据表时 JSL 会自动重新执行?
Re: 如何删除表中相同的数据?谢谢,
但是如果我刷新数据,我无法自动删除下面的相同数据
dt = Current Data Table();
dt << Select Where( :Col1 == "A") << Delete Rows;
Re: 如何删除表中相同的数据?假设您可以编写一些条件来选择要删除的数据,请查看脚本索引中的 SelectWhere()。
例如:
dt = Current Data Table();
dt << Select Where( :Col1 == "A") << Delete Rows;
这将删除 Col1 中值为“A”的所有行。