mysql:取group by第一条数据
2018-03-31 11:37
357 查看
mysql:取group by第一条数据
示例数据(表enterprise_info)
SELECT * FROM enterprise_info;
id | name | gdp | update_time |
---|---|---|---|
1 | 讯腾 | 240 | 2018/3/31 2:49 |
2 | 度百 | 120 | 2018/3/24 2:50 |
3 | 里阿 | 340 | 2018/3/25 0:00 |
4 | 里阿 | 460 | 2018/3/28 0:00 |
5 | 里阿 | 530 | 2018/2/25 0:00 |
6 | 里阿 | 450 | 2018/1/25 0:00 |
7 | 讯腾 | 320 | 2018/1/12 0:00 |
8 | 讯腾 | 435 | 2018/3/24 0:00 |
9 | 讯腾 | 564 | 2018/2/15 0:00 |
10 | 度百 | 435 | 2018/3/31 0:00 |
11 | 度百 | 675 | 2018/2/22 0:00 |
12 | 度百 | 232 | 2018/3/30 0:00 |
- 共有三个name:讯腾、度百、里阿
- id与update_time不是正相关的关系
目标
获取三个name的最新数据,并插入到新表(n_enterprise_info)中步骤一:创建新表
CREATE TABLE n_enterprise_info LIKE enterprise_info;
步骤二:查询并插入结果
INSERT INTO n_enterprise_info(name, gdp, update_time) SELECT en.name, en.gdp, en.update_time FROM enterprise_info en JOIN ( SELECT name, max(update_time) up_time FROM enterprise_info GROUP BY name ORDER BY update_time DESC ) tmp ON en.name = tmp.name AND en.update_time = tmp.up_time;
结果示例
SELECT * FROM n_enterprise_info;
id | name | gdp | update_time |
---|---|---|---|
1 | 讯腾 | 240 | 2018/3/31 2:49 |
2 | 里阿 | 460 | 2018/3/28 0:00 |
3 | 度百 | 435 | 2018/3/31 0:00 |
相关文章推荐
- mysql group by 无数据补0 方法
- 在mysql中使用group by和order by取每个分组中日期最大一行数据,亲测有效
- mysql查询获取分组后最新的一条记录,策略:先排序,然后在次分组查询(默认第一条),就是最新的一条数据了
- mysql中查询第几行到第几行及查询第一条数据
- MYSQL查询每个分类的第一条数据
- MySQL对数据表进行分组查询(GROUP BY)
- MySQL学习足迹记录11--分组数据--GROUP BY,HAVING
- 【MySQL】大数据统计 - 优化GROUP BY的使用
- MySQL Group By 数据分组-- 陷阱
- mysql按日期分组(group by)查询统计的时候,没有数据补0的解决办法
- MYSQL中GROUP BY进行数据统计
- mysql group by获取第一组数据
- mysql按日期分组(group by)查询统计的时候,没有数据补0的解决办法。
- mysql中group by分组后查询无数据补0;
- 在mysql中使用group by和order by取每个分组中日期最大一行数据
- MySQL对数据表进行分组查询(GROUP BY)
- mysql数据去重复distinct、group by
- mysql查询不到第一条数据
- mysql使用group by分组数据使用总结
- mysql 分组取第一条数据