我想编写一个SQL查询,调用group by两个列之后的一个列。我正在使用RMySQL包开发R Studio。我的服务器是MySQL。
桌子看起来像这样。
organisation ID ZIP Order
Ikea ABC 123 2018-05-30
Ikea ABC 123 2018-06-01
Ikea ABC 123 2018-06-02
Ikea DEF 123 2018-06-20
Ikea DEF 123 2018-07-01
Ikea DEF 123 NA
Ikea GHI 123 2018-06-07
Ikea GHI 123 2018-06-09我想按organisation、ID和ZIP对表进行分组,并将组中Order最早的分组放在6月份。在NA的情况下,我想忽略它们。
因此,结果应该如下所示:
organisation ID ZIP Order
Ikea DEF 123 2018-06-20
Ikea DEF 123 2018-07-01
Ikea DEF 123 NA
Ikea GHI 123 2018-06-07
Ikea GHI 123 2018-06-09这是我的尝试,但我不确定它是否正确。我不认为它能像我希望的那样处理NAs。如果有人检查/纠正这一点,那就太好了。
SELECT t.*
FROM MyTable t JOIN (SELECT organisation, ID, ZIP
FROM MyTable WHERE organisation LIKE Ikea
GROUP BY organisation, ID, ZIP
HAVING MIN(Order) >= 2018-06-01 AND
MIN(Order) < 2018-07-01
) tt
ON tt.ID = t.ID AND
tt.organisation = t.organisationhttps://stackoverflow.com/questions/51304905
复制相似问题