这是我上一个问题的延续。我在r中使用rmysql包向mysql数据库发送一个sql请求。错误说明语法有问题,但我找不到错误部分。有人能帮我纠正这个错误吗?
数据表如下所示:
organisation Tour_ID A B C D
Ikea a 2018-04-01 2018-05-07 2018-05-09 2018-05-01
Ikea a 2018-06-01 2018-05-03 2018-05-29 NA
Ikea a 2018-04-02 2018-05-01 2018-07-08 2018-05-26
Ikea b 2018-06-02 2018-05-01 NA 2018-05-26
Ikea b 2018-06-02 2018-05-01 NA 2018-05-26
Ikea b NA 2018-05-05 2018-08-02 2018-06-01
Ikea c 2018-06-01 2018-05-07 2018-05-09 2018-05-01
Ikea c 2018-06-01 2018-05-03 NA NA
Ikea c 2018-08-02 2018-05-09 2018-07-08 2018-05-26
我写的语法是:
cond <- "SELECT t.* FROM myTable t JOIN
(SELECT organisation, Tour_ID,
FROM myTable WHERE organisation LIKE "Ikea"
GROUP BY organisation, Tour_ID
HAVING A >= \"2018-05-01 00:00\" AND
A < \"2018-05-31 00:00 \"
) tt ON
tt.Tour_ID = t.Tour_ID AND
tt.organisation = t.organisation"
dbGetQuery(conn = connection, statement = cond)
我得到的错误信息是:
Unknown column 'A' in 'having clause'
但我认为有一部分是没有问题的!我的语法怎么了?如果我加入一个 SELECT
子句中,错误消息如下:
Error in .local(conn, statement, ...) :
could not run statement: Expression #3 of SELECT list is not in GROUP BY clause
and contains nonaggregated column 'myTable.myTable.A'
which is not functionally dependent on columns in GROUP BY clause;
this is incompatible with sql_mode=only_full_group_by
1条答案
按热度按时间ioekq8ef1#
不清楚你想要什么。但是在
HAVING
必须在GROUP BY
或聚合的参数。也许你想要:日期常量应使用单引号。我推测第二个常数应该是
'2018-06-01'
,如果您想要五月所有日期的范围。