如何通过一个字段选择唯一值并打印所有其他字段?

时间:2019-08-20 09:10:12

标签: sql-server select

我需要从带有时间戳字段的表中获取唯一行,该字段不是唯一的。

我尝试使用不同的时间戳记字段来运行。它给出了完美的结果,但我错过了时间戳。时间戳对我来说是必需的。

这给出正确的结果,但是我错过了tstamp字段。

SELECT distinct      person_id, status, type, strowner
FROM            tbl_wa_requests_h
WHERE        (person_id = 1128)

这有tstamp字段,但结果不是我需要的。

SELECT       person_id, status, type, strowner, db_tstamp
FROM            tbl_wa_requests_h
WHERE        (person_id = 1128)

预期结果

personid - status - type - email - tstamp
1128 -  0 - t1 -    wandam@gmail.com -  2019-08-18 11:37:15.6893649
1128 -  1 - t2 -    stever@gmail.com -  2019-08-18 11:41:04.8658361

实际结果

personid - status - type - email - tstamp
1128 -  0 - t1 -    wandam@gmail.com -  2019-08-18 11:37:15.6883648
1128 -  0 - t1 -    wandam@gmail.com -  2019-08-18 11:37:15.6883648
1128 -  0 - t1 -    wandam@gmail.com -  2019-08-18 11:37:15.6883648
1128 -  0 - t1 -    wandam@gmail.com -  2019-08-18 11:37:15.6893649
1128 -  0 - t1 -    wandam@gmail.com -  2019-08-18 11:37:15.6893649
1128 -  1 - t2 -    stever@gmail.com -  2019-08-18 11:41:04.8658361
1128 -  1 - t2 -    stever@gmail.com -  2019-08-18 11:41:04.9328798
1128 -  1 - t2 -    stever@gmail.com -  2019-08-18 11:41:05.0309459
1128 -  1 - t2 -    stever@gmail.com -  2019-08-18 11:41:04.9278764
1128 -  1 - t2 -    stever@gmail.com -  2019-08-18 11:41:04.9278764

1 个答案:

答案 0 :(得分:1)

您可以使用组子句

代码查询应如下所示:

SELECT person_id, status, type, strowner, max(db_tstamp)
FROM   tbl_wa_requests_h
WHERE  (person_id = 1128)
GROUP BY person_id, status, type, strowner