我对Mysql的返回结果的形式与两列的选择SQL查询选择:从选择结果
number date
1 date1
1 date2
2 date3
.
.
你如何我从选择查询选择,只保留最近的日期为每个数字。
我在处理查询结果时遇到问题。
我对Mysql的返回结果的形式与两列的选择SQL查询选择:从选择结果
number date
1 date1
1 date2
2 date3
.
.
你如何我从选择查询选择,只保留最近的日期为每个数字。
我在处理查询结果时遇到问题。
您可以将您的查询用作派生表。既然你没有提供查询,让我们用这个例子:
SELECT Name, Date
FROM YourQuery
现在采取MAX(Date)
和GROUP BY Name
与您的查询的派生表:
SELECT MAX(Date), Name
FROM (
SELECT Name, Date
FROM YourQuery
) a
GROUP BY Name
因为他说这些结果是查询的结果...因为我们看不到查询,我假设它不是从单个表中直接拉。 –
对不起,我没有仔细阅读!派生表是要走的路! – jarlh
如果你只是想显示的号码和日期,你可以通过做一个常规组返回的选择,它应该做的伎俩:
select
a.number,
max(a.date) from
(select number, date from table_name) a
group by a.number
如果您有其他列,你想显示该行与最近的日期,这应该做的伎俩:
select
a.number,
a.lastentrytime,
b.some_other_column
from (
select number,
max(date) recent_date
from table_name group by number) a
inner join table_name b on a.number= b.number and a.recent_date= b.date
;with cte as (
select number, row_number() over(order by date desc) as rn from thistable)
select number from cte where rn=1
您可以使用此查询来获取最新记录。
@ e4c5当你这样做时,你不能保证获得最新的结果,你只会显示一个结果总数为 – gabe3886
@ e4c5,没有'DESC'? – jarlh
今天提示:做一个GROUP BY,使用MAX()来获取每个号码的最新日期。 – jarlh