[英]How to get data by max(date) group by column in SQL Server
在下表中,我需要基于lastservice
的最后日期分组的lastservice
数据。
表格数据:
我尝试使用下面的查询
SELECT
TGL, A.NOPOL, LASTSERVICE
FROM
TRREALPRWT AS A
INNER JOIN
(SELECT
MAX(TGLREAL) AS TGL, NOPOL
FROM
TRREALPRWT
GROUP BY
NOPOL) AS B ON B.NOPOL = A.NOPOL
GROUP BY
A.NOPOL, TGL,LASTSERVICE
但是获得的结果并非每个诺普。
我应该从查询中做什么,以便它产生如下数据
| NOPOL | LASTSERVICE | TGLREAL |
| L9235VB | 224270 | 2018-01-26 00: 00: 00.000 |
| B9891JT | 219270 | 2018-02-28 00: 00: 00.000 |
我相信这应该可行,假设TGLREAL是您的约会对象。
SELECT TGL,A.NOPOL,LASTSERVICE FROM TRREALPRWT
WHERE TGLREAL IN (SELECT MAX(TGLREAL) FROM TRREALPRWT)
似乎只使用group by
子句而无需内部查询
select nopol, min(LASTSERVICE) LASTSERVICE, max(TGL) TGLREAL
from TRREALPRWT
group by nopol
在内部查询中获取所有NOPOL
所有MAX(TGL)
,然后将其与原始表匹配,再次匹配NOPOL
和MAX(TGL)
值。
SELECT T.NOPOL, T.TGL, T.LASTSERVICE
FROM
YOUR_TABLE T
INNER JOIN
(SELECT NOPOL, MAX(TGL) AS MAX_TGL FROM YOUR_TABLE GROUP BY NOPOL) A
ON T.NOPOL = A.NOPOL AND T.TGL = A.MAX_TGL;
问题中的样本输出似乎表明您想要每个nopol的第一个tgl,max(lastservice)
SELECT nopol,MIN(lastservice) lastservice, MAX(tgl) tglreal
FROM trreal
GROUP BY nopol
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.