如何在mssql中执行max to date?

问题描述 投票:0回答:1

我尝试按名称获取每行的

last_modify_date
列的最大值。

我只得到一个结果。但我想得到这样的结果:

name | v | last_modify_date
---------------------------
example1 | 100 | 2024-01-03 12:00:00
example2 | 100 | ...
example3 | 100 | ...

查询:

CREATE TABLE MyTable (
    name VARCHAR(50),
    value INT,
    last_modify_date DATETIME
);

INSERT INTO MyTable (name, value, last_modify_date) VALUES
('Example1', 100, '2024-01-01 12:00:00'),
('Example1', 100, '2024-01-02 12:00:00'),
('Example1', 100, '2024-01-03 12:00:00'),
('Example2', 100, '2024-01-02 12:00:00'),
('Example2', 100, '2024-01-02 18:00:00'),
('Example3', 100, '2024-01-02 12:00:00');

SELECT name, [value] as v, max(last_modify_date) FROM MyTable;

PS:如果可以不使用 group by,因为在我的原始查询中我选择了 30 列,并且我不想在 group by 中重复这些列。

sql-server
1个回答
0
投票

下面的内容对我有用,但请注意,该表在关系数据方面并不是很好的设计,并且这适用于提供的示例数据,我不确定您是否能够避免实际数据中的重复。还要尝试避免使用 SQL 关键字(如“值”和“名称”)命名列

SELECT name, [value] as v, max(last_modify_date) FROM 
MyTable
group by name, value

数据:

结果:

© www.soinside.com 2019 - 2024. All rights reserved.