MySQL 选择最大日期和最大时间的位置

标签 mysql select max

我有这种表:

CREATE TABLE Buckets (
    id INT UNSIGNED AUTO_INCREMENT,
    checkDate DATE NOT NULL,
    checkTime TIME NOT NULL,
    accountId CHAR(13),
    costCenter VARCHAR(30),
    percentage DECIMAL(5,2),

    UNIQUE INDEX (checkDate, checkTime, accountId, costCenter),
    PRIMARY KEY (id)

)ENGINE=InnoDB;

目前我有这样的数据:

1 2014-03-24 08:11:27 387909559196 72350 86.92
2 2014-03-24 08:11:27 387909559196 analytics 12.71
3 2014-03-24 08:11:27 387909559196 json-files 0.36
4 2014-03-24 08:11:27 387909559196 cloud 0.01
5 2014-03-25 08:11:27 387909559196 72350 86.92
6 2014-03-25 08:11:27 387909559196 analytics 12.71
7 2014-03-25 08:11:27 387909559196 json-files 0.36
8 2014-03-25 08:11:27 387909559196 cloud 0.01
9 2014-03-25 08:38:55 387909559196 72350 86.92
10 2014-03-25 08:38:55 387909559196 analytics 12.71
11 2014-03-25 08:38:55 387909559196 json-files 0.36
12 2014-03-25 08:38:55 387909559196 cloud 0.01

我想让 Select 选择最大日期,然后选择最大时间。在这种情况下,结果应仅包含第 9-12 行。

到目前为止我已经尝试过这种查询,但不幸的是我没有得到我想要的结果:

SELECT b.id, b.checkDate, b.checkTime, b.AccountId, b.costCenter, b.percentage, c.id, c.name FROM Buckets b
JOIN CustomerAccounts ca ON (b.accountId= ca.linkedAccountId)
JOIN Customer c ON (ca.customerId = c.id)
WHERE checkDate = (SELECT max(checkDate) FROM Buckets)
AND checkTime = (SELECT max(checkTime) FROM Buckets)

最佳答案

这样试试

SELECT * FROM
(
  SELECT b.id, b.checkDate, b.checkTime, b.AccountId, b.costCenter, b.percentage, c.id, c.name     
  FROM Buckets b JOIN CustomerAccounts ca ON (b.accountId= ca.linkedAccountId)
                 JOIN Customer c ON (ca.customerId = c.id)
) AS S JOIN 
(
  SELECT max(checkDate) AS MaxDate,max(checkTime) As MaxTime FROM Buckets
) AS T ON T.MaxDate = S.checkDate AND S.checkTime = T.MaxTime 

关于MySQL 选择最大日期和最大时间的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22629307/

相关文章:

php - 根据另一列的不同值对 sql 值求和并将结果放入数组中

ruby-on-rails-3 - 如何设置form_for select的默认值

mysql - 从 Select 语句中选择 : Every derived table must have its own alias

Python/MySQL 在 Windows 下失败

php - 如何在 while 循环内从另一个表的表中获取数据?

javascript - add() 和 appendChild() 对于选择的 DOM 对象是否相同?

mysql - 从具有最大/最小值的记录中提取值

r - 获取r中具有最大日期的所有相应行

python - 更改列表的最后 1000 个值的最小值和最大值

php - 如何从 codeigniter 中的三个表中检索数据以获得完整 View