MySQL中查询时间最大的一条记录
在项目中要查询用户最近登录的一条记录的 ip
直接写如下 SQL:
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语句如下:
SELECT * from (SELECT * FROM A ORDER BY time) a GROUP BY a.id;
解释:
在这里,我们首先对 A 表进行按照时间的顺序排序,这样我们可以把每个用户最后一次购买记
录排在最上面,排序之后再嵌套一层查询,这一层查询使用 GROUP BY 语句。在使用GROUP
BY 语句的时候,他会按照分组将你排过序的数据的第一条取出来,这样就比较符合条件了,这种
方式在添加索引的情况下效率相当快
MySQL中查询时间最大的一条记录的更多相关文章
- Mysql中 查询慢的 Sql语句的记录查找
Mysql中 查询慢的 Sql语句的记录查找 慢查询日志 slow_query_log,是用来记录查询比较慢的sql语句,通过查询日志来查找哪条sql语句比较慢,这样可以对比较慢的sql可以进行优化. ...
- 如何在MySQL中查询当前数据上一条和下一条的记录
如果ID是主键或者有索引,可以直接查找: 方法一: 查询上一条记录的SQL语句(如果有其他的查询条件记得加上other_conditions以免出现不必要的错误): select * from tab ...
- mysql随机查询符合条件的几条记录
随机查询,方法可以有很多种.比如,查询出所有记录,然后随机从列表中取n条记录.使用程序便可实现.可是程序实现必须查询出所有符合条件的记录(至少是所有符合条件的记录id),然后再随机取出n个id,查询数 ...
- 小安,今天学会了MySQL中查询时间的方法哦
- [django/mysql] 使用distinct在mysql中查询多条不重复记录值的解决办法
前言:不废话.,直接进入正文 正文: 如何使用distinct在mysql中查询多条不重复记录值? 首先,我们必须知道在django中模型执行查询有两种方法: 第一种,使用django给出的api,例 ...
- 如何查找MySQL中查询慢的SQL语句
如何查找MySQL中查询慢的SQL语句 更多 如何在mysql查找效率慢的SQL语句呢?这可能是困然很多人的一个问题,MySQL通过慢查询日志定位那些执行效率较低的SQL 语句,用--log-slow ...
- 如何在MySQL中查询每个分组的前几名【转】
问题 在工作中常会遇到将数据分组排序的问题,如在考试成绩中,找出每个班级的前五名等. 在orcale等数据库中可以使用partition语句来解决,但在mysql中就比较麻烦了.这次翻译的文章就是专门 ...
- mysql 查询每个分组前N条记录
mysql 查询每个分组前N条记录 假设存在表movie, 有字段 id, part(地区), mcount(观看次数) 现查询每个地区观看次数最多的3部movie, 则表 ###id虽未存在gro ...
- sql点滴42—mysql中的时间转换
原文:sql点滴42-mysql中的时间转换 UNIX时间戳转换为日期用函数: FROM_UNIXTIME() select FROM_UNIXTIME(1156219870); 日期转换为UNIX时 ...
随机推荐
- SQL数据分析概览——Hive、Impala、Spark SQL、Drill、HAWQ 以及Presto+druid
转自infoQ! 根据 O’Reilly 2016年数据科学薪资调查显示,SQL 是数据科学领域使用最广泛的语言.大部分项目都需要一些SQL 操作,甚至有一些只需要SQL. 本文涵盖了6个开源领导者: ...
- 【Alpha版本】冲刺阶段——Day3
[Alpha版本]冲刺阶段--Day3 阅读目录 今日进展 问题困难 明日任务 今日贡献量 TODOlist [今日进展] 密码算法方面: 参考了md5/sha1+salt和Bcrypt后,我们决定使 ...
- JetBrains WebStorm打开多个项目project的方法
JetBrains WebStorm打开多个项目project的方法File-->Settings-->Directories点击右侧 + Add content root,选择目录后即可 ...
- linux dns
linux 用户相关的 root 相当于QQ群主 sudo QQ群管理员 普通用户 QQ群水军 root UID 是 0 组UID也是0 普通用户UID从1000开始 查看用户id 信 ...
- Symfony2 学习笔记之服务容器
现在的PHP应用程序都是面向对象开发,所以主要是由对象构成.有的对象可以方便的分发邮件信息而有的可能帮你把信息写入到数据库中.在你的应用程序中,你可能创建一个对象用于管理你的产品库存,或者另外一个对象 ...
- Hadoop学习笔记之一:Hadoop IPC
因为某些原因需要把前一段时间对Hadoop(版本基于0.20.2)的学习积累搬到这里,成为一个系列.写得会很简单,只为必要时给自己提醒. IPC框架 所有Hadoop协议接口的实现都依赖Hadoop ...
- mxnet 查看 Sym shape
import mxnet as mximport numpy as npimport randomimport mxnet as mximport sysdata_shape = {'data':(6 ...
- scrapy selenium 登陆zhihu
# -*- coding: utf-8 -*- # 导入依赖包 import scrapy from selenium import webdriver import time import json ...
- Golang操作Redis
在系统环境下实现redis操作必须做好以下准备 一.当前系统必须下载安装redis 二.配置好GOPATH环境变量,并下载GO的redis驱动包 当做好以上准备工作时,紧接着如下 看以下要使用的驱动包 ...
- eclipse maven Errors while generating javadoc on java8
With JDK 8, we are unable to get Javadoc unless your tool meets the standards of doclint. Some of it ...