我预计以下内容会产生超过 3 行,因为每个 a.[Species] 中都有 min(a.[Sepal.Width]) 的关系, 但是只返回 3 行:
sqldf(' select a.[Species], min( a.[Petal.Width]) from iris a group by a.[Species] ')
Species min( a.[Petal.Width])
1 setosa 0.1
2 versicolor 1.0
3 virginica 1.4
1:这是 SQLite 的正常行为吗?
2:如何设计一个选择字符串来返回联系? (最好尽可能接近原始搜索字符串)
编辑:我现在发现我的困惑源于习惯使用 SAS proc sql,它将返回所有匹配的行。我现在了解到,这确实是 SAS proc SQL 所特有的,而不是其他 SQL 版本所期望的。与我有同样 SAS 引起的困惑的人将从这个阐明此 SAS 行为的答案中受益:https://stackoverflow.com/a/25539916/1831980
最佳答案
这就是我要做的:
sqldf::sqldf('SELECT b.[Species], b.[Petal.Width] FROM iris b JOIN
(SELECT [Species], MIN( [Petal.Width]) AS [Petal.Width]
FROM iris GROUP BY [Species]) a
USING ([Species],[Petal.Width])')
关于SQLite 删除 group by 中的联系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42401983/