我想编写一个sql查询,在groupby两列之后调用一列。我正在使用rmysql包开发r studio。我的服务器是mysql。
这张table看起来像这样。
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
我想把table按 organisation
, ID
以及 ZIP
,并在最早 Order
这个小组在六月。如果是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.organisation
1条答案
按热度按时间ui7jx7zq1#
我认为你的问题基本上是正确的:
我在字符串和日期常量周围添加了单引号。
我想
NA
真的代表为NULL
在mysql中。