我想选择一个查询,该查询将为我提供多个日期行中的唯一日期和最大值(值)

时间:2019-07-11 08:56:05

标签: sql-server

我想从多行中选择唯一的日期,并从另一列中选择具有max(value)的行。

SQL表

DateTime        Value
01-06-2019  100
01-06-2019  200
02-06-2019  300
03-06-2019  400
04-06-2019  1000

我想要的结果

Jun-01  200
Jun-02  400
Jun-03  1000


SELECT tt.*
FROM [dbo].[device_Flow_Data_Json] tt
INNER JOIN
    (SELECT Created_date, MAX(Instant_Flow) AS Instant_Flow
    FROM [dbo].[device_Flow_Data_Json] 
    GROUP BY Created_date) groupedtt 
ON tt.Created_date = groupedtt.Created_date 
AND tt.Instant_Flow = groupedtt.Instant_Flow
 where groupedtt.Created_date between '2019-07-01 14:09:36.040' and '2019-07-11 14:09:36.040'

我得到一个包含所有行的结果

2 个答案:

答案 0 :(得分:0)

这里不需要子查询。可以简单地通过以下方式完成:

SELECT DateTime,
       MAX([Value]) AS MaxValue
FROM YourTable YT
GROUP BY DateTime;

因此,我想对于您的查询将是:

SELECT dFD.DateTime,
       MAX(dFD.[Value]) AS MaxValue
FROM [dbo].[device_Flow_Data_Json] dFD
WHERE dFD.Created_date BETWEEN '2019-07-01T14:09:36.040' AND'2019-07-11T14:09:36.040'
GROUP BY dFD.DateTime

答案 1 :(得分:0)

敌对你上面给出的例子

表格数据

2019-07-01 10
2019-07-01 200
2019-07-01 2000
2019-07-02 200
2019-07-03 400
2019-07-05 600

查询:-SELECT date,max(value) as value FROM数据检查GROUP by date

结果是:

2019-07-01 2000
2019-07-02 200
2019-07-03 400
2019-07-05 600

在上面的查询中,您可以按日期分组并选择使用最大功能。