mysql - 唯一字段上的group by的Sql问题
问题描述
我的sql看起来像这样:
create table user(
id varchar(45),
name varchar(45),
comment varchar(10)
);
insert into user(id, name, comment)
values
('357607425559331', 'Name1', 'Comment'),
('240358944458028', 'Name2', 'Comment'),
('173956187882837', 'Name3', 'Comment'),
('4174662639277087', 'Name4', 'Comment'),
('1992571284232684', 'Name5', 'Comment'),
('285647222973252', 'Name6', 'Comment'),
('263639542044766', 'Name7', 'Comment'),
('483596959315457', 'Name8', 'Comment'),
('893514004824380', 'Name9', 'Comment'),
('852595485297071', 'Name10', 'Comment'),
('772471550150585', 'Name11', 'Comment');
create table insights(
user_id varchar(45),
date_time datetime
);
insert into insights(user_id, date_time)
values
('357607425559331', '2021-04-03'),
('240358944458028', '2021-04-03'),
('173956187882837', '2021-04-03'),
('4174662639277087', '2021-04-03'),
('1992571284232684', '2021-04-03'),
('285647222973252', '2021-03-03'),
('263639542044766', '2021-04-03'),
('483596959315457', '2021-04-03'),
('893514004824380', '2021-04-03'),
('852595485297071', '2021-04-03'),
('772471550150585', '2021-04-03'),
('357607425559331', '2021-04-02'),
('240358944458028', '2021-04-02'),
('173956187882837', '2021-04-02'),
('4174662639277087', '2021-04-02'),
('1992571284232684', '2021-04-02'),
('285647222973252', '2021-04-02'),
('263639542044766', '2021-04-02'),
('483596959315457', '2021-04-02'),
('893514004824380', '2021-04-02'),
('852595485297071', '2021-04-02'),
('772471550150585', '2021-04-02'),
('357607425559331', '2021-04-01'),
('240358944458028', '2021-04-01'),
('173956187882837', '2021-04-01'),
('4174662639277087', '2021-04-01'),
('1992571284232684', '2021-04-01'),
('285647222973252', '2021-04-01'),
('263639542044766', '2021-04-01'),
('483596959315457', '2021-04-01'),
('893514004824380', '2021-04-01'),
('852595485297071', '2021-04-01'),
('772471550150585', '2021-04-01'),
('357607425559331', '2021-03-31'),
('240358944458028', '2021-03-31'),
('173956187882837', '2021-03-31'),
('4174662639277087', '2021-03-31'),
('1992571284232684', '2021-03-31'),
('285647222973252', '2021-03-31'),
('263639542044766', '2021-03-31'),
('483596959315457', '2021-03-31'),
('893514004824380', '2021-03-31'),
('852595485297071', '2021-03-31'),
('772471550150585', '2021-03-31');
我的查询如下所示:
SELECT user.id as user_id, user.name as user_name
FROM user
LEFT JOIN insights ON user.id = insights.user_id
WHERE (insights.date_time >= '2021-03-05') AND (insights.date_time <= '2021-04-05')
GROUP BY user.id;
运行此查询后,我收到以下错误:
Query Error: Error: ER_WRONG_FIELD_WITH_GROUP: Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'test.user.name' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
为什么会出现这个错误?我的意思是该user_id
字段在用户表中是唯一的,所以它不应该显示这个结果。
在另一个工作表上,这些数据一定有问题,但我想不通。
解决方案
推荐阅读
- c# - 无法在 botframework 中使用 ngrok 调试 Cortana 代码
- plotly - 在没有互联网的情况下以离线模式冲刺。显示 loding.. 仅不显示图表
- mono - Mono 跨平台 AOT (Ahead Of Time) 编译
- c# - 如何在 xamarin android 项目上集成 webrtc android 本机库?
- android - 我只想将文件上传到 Google Drive
- python - df 不会使用 .at 更新并且打印不起作用
- c - 为什么我用于将元素插入哈希树的 C 代码在 Main() 中有效,但在我通过函数调用时无效?
- xamarin - 在 Visual Studio 2017 中找不到 ClassLibrary(Xamarin.Forms)
- php - 表格没有回复
- ruby - 如何获取已在 ruby 中定义方法的类?