gpt4 book ai didi

mysql - RMySQL : SQL Syntax error unidentifiable

转载 作者:行者123 更新时间:2023-11-29 07:31:18 25 4
gpt4 key购买 nike

这是从我的 previous question 连续的.我在 R 中使用 RMySQL 包将 SQL suery 发送到 MySQL 数据库。该错误表明语法有问题,但我找不到错误部分。谁能帮我解决这个错误?

数据表是这样的:

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'

但我认为 HAVING 部分没有问题!我的语法有什么问题?此外,如果我在 SELECT 子句中添加 A,错误消息显示为:

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

最佳答案

不清楚你想要什么。但是 HAVING 中的列必须在 GROUP BY 中或聚合的参数中。也许你想要:

(SELECT organisation, Tour_ID
FROM myTable WHERE organisation LIKE "Ikea"
GROUP BY organisation, Tour_ID
HAVING MIN(A) >= '2018-05-01' AND
MAX(A) < '2018-05-31'
) tt

日期常量应使用单引号。我推测第二个常量应该是 '2018-06-01',如果您想要 5 月所有日期的范围。

关于mysql - RMySQL : SQL Syntax error unidentifiable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51103265/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com