SQLite 删除组中的关系

SQLite removes ties in group by

我预计以下内容会产生超过 3 行,因为每个 a.[Species] 中都有 min(a.[Sepal.Width]) 的关系, 然而只有 3 行是 returned:

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

编辑:我现在明白我的困惑源于习惯使用 SAS proc sql,这将 return 所有匹配的行。我现在了解到,这确实是 SAS proc SQL 所特有的,而不是其他 SQL 化身所期望的。和我一样有 SAS 引起的困惑的人将从这个阐明 SAS 行为的答案中受益:

我怀疑这就是你想要的:

select i.*
from iris i
where i.sepal_width = (select max(i2.sepal_width)
                       from iris i2
                       where i2.species = i.species
                      );

我会这样做:

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])')