mysql - 选择列中具有第二大值的行

标签 mysql sql database select

<分区>

假设我有一个类似于以下的表:

Item         Description            Time
-----        -----------            -----
ItemA1       descript               08-16-2013 00:00:00
ItemA2       descript               08-16-2013 00:00:00
ItemA3       descript               08-16-2013 00:00:00
.
.
ItemAN       descript               08-16-2013 00:00:00

ItemB1       descript               08-13-2013 00:00:00
ItemB2       descript               08-13-2013 00:00:00
ItemB3       descript               08-13-2013 00:00:00
.
.
ItemBN       descript               08-13-2013 00:00:00
.
.
.
ItemX1       descript               01-13-2012 00:00:00
ItemX2       descript               01-13-2012 00:00:00
ItemX3       descript               01-13-2012 00:00:00
.
.
ItemXN       descript               01-13-2012 00:00:00

项目组会定期添加。添加一组项目时,它们都会添加相同的“时间”字段。 “时间”本质上用作该项目组的唯一索引。

我想选择时间第二高的项目组。在此示例中,我的查询应提取“B”项。我知道我可以执行 max(time) 来选择“A”项,但我不知道倒数第二个该怎么做。

我的“时间”列存储为 TIMESTAMP,如果这意味着什么的话。

最佳答案

你可以试试这样的:

SELECT MAX(Time)
FROM yourTable
WHERE Time < (SELECT MAX(Time) FROM yourTable)

SQLFiddle Demo

关于mysql - 选择列中具有第二大值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18280138/

相关文章:

sql - 需要使用 PostgreSQL 将 2 列连接成一个列

php - 多个 iFrame 重定向有效,但担心 PHP 安全

php - 使用 PHP 表单将行插入 MySQL 表

php - Mysql通过取错时间戳查询分组

sql - 使用 postgresql 数据库存储 NULL 值需要多少磁盘空间?

php - 使用 symfony2 和 doctrine 从现有数据库生成单个实体

java - MySql和java{获取相关表列}

java - 如何将reducer的输出写入数据库?

jquery - 使用 PHP+jQuery AJAX 检查 MySQL 数据库的变化并加载变化?

mysql - MySQL 中用户定义变量的奇怪行为