mysql:取group by第一条数据
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第一条数据相关推荐
- mysql分组取出每组地一条数据_MYSQL实现分组排序并取组内第一条数据
一.需要实现分组排序并且取组内状态优先级最高的数据 有一张这样的数据表, 需求是根据error_type分组然后取status最小的第一条数据 第一种写法: select t.* from ( sel ...
- oracle 取分组第一行,oracle分组后取每组第一条数据
oracle 分组后取每组第一条数据 '数据格式 分组取第一条的效果 sql SELECT * FROM (SELECT ROW_NUMBER() OVER(PARTITION BY x ORDER ...
- php mysql只获取一条数据_php mysql 查询只返回第一条数据
php mysql 查询只返回第一条数据 $search = mysql_query("select * from `info`"); $search = mysql_fetch_ ...
- MYSQL实现分组排序并取组内第一条数据
一.需要实现分组排序并且取组内状态优先级最高的数据 有一张这样的数据表, 需求是根据error_type分组然后取status最小的第一条数据 第一种写法: select t.* from (sele ...
- PG数据库:分组后取每组第一条数据
PG数据库查询遇到一个需求,数据库表data,先对其中设备标识字段a分组group by,然后查一段时间内的每一个设备数据字段b的极大值和极大值发生的数据时间time,想起之前Oracle有类似写法, ...
- mysql查询每个用户第一条数据_MySQL数据库订单表按用户邮箱字段分组查询每个用户的第一条记录...
程序开发或者一些数据统计时,在MySQL中使用GROUP BY分组是很常用的SQL语句.那么,如果如下的简单示例订单数据表,我们现需要使用GROUP BY分组后查询每个用户的第一个订单记录,应该如何实 ...
- Oracle取排序的第五条数据,OVER(PARTITION BY)函数介绍 【oracle中按A分组按B排序,再取B中第一条数据的查询】...
目录 一.小案例: school表中有①id 序号②class 班级 ③score成绩 三个字段, 使用oracle实现按照班级分区,然后取班级中的第一名. 1.1测试数据如下: --创建学校表sch ...
- oracle 分组后取每组第一条数据
数据格式 分组取第一条的效果 sql SELECT * FROM (SELECT ROW_NUMBER() OVER(PARTITION BY x ORDER BY y DESC) rn, test1 ...
- mysql 取每月最新一条数据
[业务需场景] 设备(多台)每天会像服务器上传数据,要取出每个设备每个月上传的最后一条数据. [SQL1]使用DATE_FORMAT('', '%Y-%m-%d')函数先按月分组获取每月最新的一条数据 ...
最新文章
- 纠结的名字 - 自动生成apk文件名
- 洛谷 P1008 三连击 Label:水
- 如果我是博客园的产品经理【下】
- java开发计算机考试服务器_2011计算机二级JAVA编程:取得服务器当前的各种具体时间...
- 被该死的Openssl编译嘲讽了一个下午
- LeetCode 161. 相隔为 1 的编辑距离(DP/遍历)
- java中的守护线程
- Gitter - 高颜值GitHub小程序客户端诞生记 1
- hive 的drop table命令出错
- windows server 2012 开始菜单
- word加载项打包发布注意事项总结
- Python Pytest自动化测试 获取测试用例执行结果
- Unity首次运行下载游戏资源
- matlab中国官网下载,首页 - MATLAB中文论坛
- glassfish插件_可扩展GlassFish v3的JavaEE 6平台
- 计算机读研的收获和遗憾
- 比较无线局域网和无线广域网的特征
- 计算机组成原理笔记(8)---机器指令、寻址方式
- 获取html元素的高,获取HTML元素的高度jQuery
- mysql server mirro_Docker下安装MySQL Server镜像