python - MySql 5.7 错误(这与 sql_mode=only_full_group_by 不兼容)
问题描述
我已经看到几个答案说修复您的查询,但我GROUP BY CONCAT
的查询中有并且不知道如何修复它。
cur.execute('''
SELECT user_id, symbol FROM first_sweep
WHERE date_time BETWEEN %s AND %s AND action = 'buy'
GROUP BY CONCAT(user_id, "-",symbol)
''', (min_rng, max_rng,))
fs = cur.fetchall()
我得到的完整错误是:
(1055, "Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'stockpicker.first_sweep.user_id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by")
我正在使用 Ubuntu 18.04、MySql 5.7 和 Python 2.7
解决方案
这有效:
SELECT
CONCAT(user_id, '-', symbol) as usym,
MAX(user_id) AS user_id,
MAX(symbol) AS symbol
FROM first_sweep
WHERE date_time BETWEEN %s AND %s AND action = 'buy'
GROUP BY usym
推荐阅读
- python - 密码验证在 django-rest-framework 中不起作用
- r - 试图在一个简单的 BS 公式的实现中找到一个错误
- python - 如何使用python检查数据集列表中字符“M”的数量
- mongodb - 如何使用 MongoDB 聚合进行分组和计数
- python - 将 DHT11 传感器中的值保存到 CSV 文件
- python - 从日历中提取 xlsx 文件以创建所有数据的数据框
- c# - 从字符串SQL转换日期或时间时日期时间转换失败(c#)
- scala - 如何计算给定id的数组列中有多少个大写和小写字符串
- amazon-s3 - Cloudfront mp4 缓存问题
- r - ggplot() 中不显示自定义 y 轴标签