mysql - Java 中的 SQL;处理 SELECT 和 GROUP BY 时出错

标签 mysql

首先,我是 SQL 方面的 super 新手,所以我不具备提出简单问题的知识,但我会尽力而为。这是我试图提出的查询:

query = conn1.prepareStatement(
"select Industry, Ticker, TransDate, min(TransDate), max(TransDate), " +
"     count(distinct TransDate) as TradingDays, " +
"     count(distinct Ticker) as TickerCnt, " +
"     openPrice, closePrice " +
"  from  Company left outer join PriceVolume using(Ticker) " +
"  group by Industry " +
"  having TradingDays >= 150 " +
"  order by Industry, Ticker, TransDate");
ResultSet rs = query.executeQuery();

错误如下: SQLException: Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'reedy330.Company.Ticker' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

如果我在 GROUP BY 子句中包含 Ticker 和 TransDate,则不再发生异常,但 ResultSet是空的。我想做的是 ResultSet一切都在 SELECT子句作为元素。我根据作业描述中的类似示例查询构建了此查询,这就是我不太理解它的原因。

这是数据库的布局,表名用冒号加粗,键以粗体显示:

PriceVolume:
Ticker
TransDate
OpenPrice
HighPrice
LowPrice
ClosePrice
Volume
AdjustedGross

Company:
Ticker
Name
Industry
Location

有什么想法吗?

最佳答案

“sql_mode=only_full_group_by”对您来说是必要的吗?

如果没有,请更改sql_mode:

SET sql_mode = '';

或者

SET sql_mode = 'STRICT_ALL_TABLES';

关于mysql - Java 中的 SQL;处理 SELECT 和 GROUP BY 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35978508/

相关文章:

mysql - Mongodb查询和排序多个集合

Mysql ERROR 1093 (HY000) 更新一行

mysql - 转义 Node.JS MySQL 问题

mysql - View 中的多个分类术语重复结果。删除重复但保留术语

mysql - 更新实时项目

mysql - 仅复制 Cloud SQL (MySQL) 上的某些表 (replicate-do-table)

mysql - 使用过滤器更新 mysql 表时出错

php - MYSQL 准备语句查询不匹配 WRITTERID 与 WRITER

MySQL 将两个表连接到 n :m Relation

mysql - 如何在 mac os 10.13.3 中重置 mysql 密码