精华内容
下载资源
问答
  • MySQL中查询时间最大的一条记录

    千次阅读 2019-03-04 13:15:40
    在项目中要查询用户最近登录的一条记录的 ip 直接写如下 SQL: 1 SELECTip,MAX(act_time)FROMusers_loginGROUPBYlogin_id; 但是这样是取不出用户登录记录中时间最大的那个 ip , 仅仅只是查到...

    在项目中要查询用户最近登录的一条记录的 ip

    直接写如下 SQL: 

    1

    SELECT ip,MAX(act_time) FROM users_login GROUP BY login_id;

    但是这样是取不出用户登录记录中时间最大的那个 ip , 仅仅只是查到了最大时间,和 ip 没关系

    找了相当多的文章,经过自己测试,发现一个比较好的方式处理这个问题,举例如下:

    现在假设有一张数据表 A , 字段和数据如下:

    姓名(name) 身份证(唯一标识)(id) 购买产品(pro) 价格(price) 数量(count) 购买时间(time)
    张1 111111 Computer 1600 5 2018-03-03
    张1 11111 Phone 12     12   2018-03-05
    张2 22222 Pipe 1 234 2018-03-04
    张2 22222 Computer 1600 5 2018-03-05
    张3 33333 Phone 12 12 2018-03-03
    张3 33333 Pipe 1 234 2018-03-06
    张3 33333 Computer 1600   5 2018-03-09
    张4 44444 Phone 12 12 2018-03-09
    张5 55555 Pipe 1 234 2018-03-02

     

    在这张数据表中,我们需要查询表中每一个用户在最后一次都购买了什么产品以及相关信息

    SQL语句如下:

    1

    SELECT from (SELECT FROM ORDER BY time) a GROUP BY a.id;

    解释:

    在这里,我们首先对 A 表进行按照时间的顺序排序,这样我们可以把每个用户最后一次购买记

    录排在最上面,排序之后再嵌套一层查询,这一层查询使用  GROUP BY 语句。在使用GROUP 

    BY 语句的时候,他会按照分组将你排过序的数据的第一条取出来,这样就比较符合条件了,这种

    方式在添加索引的情况下效率相当快

    Mysql 5.7 以后,子查询 ORDER BY不会被优化器执行,可以在子查询中添加 LIMIT解决

    或者使用聚合函数:

    select  *from  test t1 join (select t_id,max(time) as time from test  group by t_id) t2 on t1.t_id = t2.t_id 

    转自:https://www.cnblogs.com/leeyongbard/p/9580233.html

    展开全文
  • 在mysql 中查询时间最大的一条记录

    万次阅读 2016-08-12 15:53:44
    在项目中需要查询订单最后操作的一条记录 的money 直接写 select max(create_time) ,order_id,money from goods group by order_id 这样是取不出订单中时间最大的那个money ,你只是查到了时间最大的值,和money ...

    在项目中需要查询订单最后操作的一条记录 的money

    直接写  select max(create_time) ,order_id,money  from goods  group by order_id

    这样是取不出订单中时间最大的那个money  ,你只是查到了时间最大的值,和money 没关系。


    思路

    取出订单中时间最大的那条记录 再 去定位自关联 那条记录在取值。
     select a.order_id,b.money2 from (select max(create_time) as q,order_id from ecs_account_log    
         group by order_id order by create_time desc) as a left join ecs_account_log as b on a.order_id = b.order_id and  a.q = b.create_time 


    展开全文
  • 问题:需要查询一条记录中多列数据的最大值 ?-? 范例表——test,数据如下 select * from test ; 函数 greatest() 某几列的最大值 select greatest(num_1,num_2) from test; -- 某几列的最大值,横向求最大(一行...

    参考链接:https://www.begtut.com/sql/func-mysql-greatest.html【感谢!】

    问题:需要查询一条记录中多列数据的最大值 ?-?

    范例表——test,数据如下

    select * from test ;
    

    在这里插入图片描述

    • 函数 greatest() 某几列的最大值
    select greatest(num_1,num_2) from test; -- 某几列的最大值,横向求最大(一行记录)
    

    在这里插入图片描述

    • 函数 least() 某几列的最小值
    select least(num_1,num_2) from test;-- 某几列的最小值,横向求最小(一行记录)
    

    在这里插入图片描述

    • 函数max() 某几行的最大值
    select max(num_1),max(num_2) from test; --  纵向求最大(多行记录)。
    

    在这里插入图片描述

    • 函数min() 某几行的最小值
    select min(num_1),min(num_2) from test; --  纵向求最小(多行记录)。
    

    在这里插入图片描述

    • 求整个表记录中num_1和num_2最大值
    select greatest(max(num_1),max(num_2)) from test;
    

    在这里插入图片描述

    展开全文
  • 这个需求很普遍,解决方式有两种,例如 create table mx ( PK int, [name] varchar(8), ...[service] varchar(8),  ...需要结果为 ...第种方式 ...select * from mx t where time =...以效率来说第种效率要快些

    这个需求很普遍,解决方式有两种,例如

    create table mx
    (
    PK int,
    [name] varchar(8),
    [service] varchar(8),    
    [time] datetime 
    )
    go

    insert into mx
    select 1,    'A01', 'B01',     '2009-10-1' union all
    select 2,    'A01', 'B01',      '2009-10-2' union all 
    select 3,    'A01', 'B02',      '2009-10-4' union all 
    select 4,    'A01', 'B03',      '2009-10-4'
    go

    需要的结果为

    2,    'A01', 'B01',      '2009-10-2' 
    3,    'A01', 'B02',      '2009-10-4'  
    4,    'A01', 'B03',      '2009-10-4'

    第一种方式

    select * from mx t where time =(select max( time ) from mx where name=t.name and service=t.service)

    第二种方式

    select * from mx m where not exists(select * from mx where mx.[service]=m.[service] and mx.[time]>m.[time])

    以效率来说第一种效率要快些

    展开全文
  • mysql 分组查询最新的一条记录

    千次阅读 2019-09-18 15:54:48
    mysql 分组查询最新的/最高的一条记录 mysql取分组后最新的一条记录, 一种是先筛选出最大和最新的时间,在连表查询. 一种是先排序,然后在次分组查询(默认第一条),就是最新的一条数据了 select * from (select * ...
  • 查询的过程中,有时库里单个用户的数据往往会存在很多条,当我们需要查询出用户的一条数据时(最大时间对应记录或最小时间对应记录)往往要写很复杂的子查询,而其实通过一个简单的方法就可以查询。 就是使用...
  • 在项目中要查询用户最近登录的一条记录的 ip 直接写如下 SQL: 1 SELECTip,MAX(act_time)FROMusers_loginGROUPBYlogin_id; 但是这样是取不出用户登录记录中时间最大的那个 ip , 仅仅只是查到...
  • 对于 MySQL查询时间最大或最新的一条记录的SQL写法,在网上找了好多,大部分都是错的,这些错的都还基本都一样的写法,可能也都是抄别人的,都没有认真去试验过,不负责的表现,最后找到一篇,经测试后成功查出最新...
  • sql 查询相同记录下日期最大的 一条

    千次阅读 2019-04-26 10:31:53
    日期 编号 仓库 数量 2012-05-31 C001 A店 136.00 2012-05-29 C001 A店 139.00 ...我只显示最大日期的记录,这个SQL怎么写呀? 即 日期 编号 仓库 数量 2012-05-31 C001 A店 136.00 2012-05-30 C001 B店 6.00 ...
  • 日期 编号 仓库 数量 2012-05-31 C001 A店 136.00 2012-05-29 C001 A店 139.00 ...我只显示最大日期的记录,这个SQL怎么写? 即 日期 编号 仓库 数量 2012-05-31 C001 A店 136.00 2012-05-30...
  • --表中一个编号对应一条或多条记录-- --在SQL Server查询每个编号对应记录的记录时间最大的记录集合--         --SQL 实现 --- select emp_id, max(sign_time) sign_time,count(*) count from ...
  • select r.* from recruit r where id = (select max(id) from recruit where (school_id = r.school_id));
  • sql 查询相同记录下日期最大的一条

    千次阅读 2019-04-09 15:33:35
    select * from tableA a where a.ScanDatetime in (select max(b.ScanDatetime) from tableA b where b.CtnNo=a.CtnNo ) and a.PONo='**********'
  • ]//根据object_id分组,每组中,取survey_id最大,按survey_id排序为desc。 //取survey_id最小,按survey_id排序为asc //rank() 或者 row_number() select * from (select rank() over(partition by a.object_id ...
  • 举例,有个用户做题记录的表, create table test( id bigint(20) primary key comment '主键id', userId bigint(20) comment'用户id', count int(10) comment'做题数量', cost int(10) comment'完成做题消耗...
  • 直接用个例子来解释吧,我们要取账户表中取最新余额,也就是取user_acct中每个user_id的pt_d最大的条记录的acct_bal表结构和数据如下mysql> select * from user_acct;+---------+----------+----------+...
  • 表结构如图,取出每个单据对应最后次处理处理人[img=https://img-bbs.csdn.net/upload/201507/02/1435827898_558695.png][/img]
  • 如图2个列数据,通过下面sql来查询出每个ID的最大值在一条记录(行)中: SELECT id, MAX(max_data) FROM (SELECT id, data1 as max_data FROM 表名 UNION SELECT id, data2 FROM 表名) MaxData(必须再自定义一...
  • mysql查询最后一条记录

    万次阅读 2018-05-08 10:02:58
    是编辑时间最新的为最后一条,还是某个字段数字最大的未最后一条。 比如以时间最大为最后一条,则将符合条件的资料都筛选出来,再按时间排序,再取一笔资料。 SQL如下: select a,b from table where a>...
  • table1 id data name 1 20120907 Brian 2 20120903 Jediel ...三个表的结构都一样,如何整合三个表的数据,同时找出 data字段的最大的一条数据, 就是demo数据中的: table1 id = 1的那条记录最大。如何写?
  • 从数据库中查询出ID最大值并且加1作为下一条记录的起始条件会出现问题:比如在查询最大时候查询出来是10,而当你要插入 下一条记录的时候,这时有人比你先插入了一条记录,这样话,你本来想要插入编号比如是...
  • mysql: select * from table order by id DESC limit 1 oracle: select * from emp where id in (select max(id) from emp);

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,241
精华内容 496
关键字:

查询最大的一条记录