我有一张下表
-----------------------------------
Date | Prefilling | Ref
-----------------------------------
10/10/2017 | 5 | dinesh
17/10/2017 | 8 | Ajay
07/05/2017 | 5 | Aarthi
01/01/2018 | 8 | Kumar
-----------------------------------
如何同时执行订单和分组? 我正在使用以下查询,但它没有给出实际结果
SELECT * FROM (
select * from table order by str_to_date(date,'%d/%m/%Y') DESC
) AS tmp_table group by Prefilling
我期待结果,以及Ref
Array
(
[5] => 10/10/2017, dinesh
[8] => 01/01/2018, kumar
}
答案 0 :(得分:1)
根据您显示的结果,您希望获得每个Prefilling
的最新日期。您可以使用MAX()
并使用最大值对其进行排序。
SELECT Prefilling, MAX(STR_TO_DATE(`date`,'%d/%m/%Y')) AS MAX_DATE
FROM TableName
GROUP BY Prefilling
ORDER BY MAX_DATE
这里是Demo
以下是根据您更新的问题更新的答案。您可以单独检索子查询中每个Prefilling
的最新日期,并将结果与原始表本身连接,前提是它在两个条件下都匹配 - 预填充和最新日期以获取所有列。
SELECT a.*
FROM TableName a
INNER JOIN
(
SELECT Prefilling, MAX(str_to_date(date,'%d/%m/%Y')) AS MAX_DATE
FROM TableName
GROUP BY Prefilling
) b ON a.Prefilling = b.Prefilling
AND str_to_date(a.date,'%d/%m/%Y') = b.MAX_DATE
ORDER BY b.MAX_DATE
和Demo