我想从多行中选择唯一的日期,并从另一列中选择具有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'
我得到一个包含所有行的结果
答案 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
在上面的查询中,您可以按日期分组并选择使用最大功能。