Я хочу выбрать запрос, который дал бы мне уникальные даты и Max (значение) в нескольких строках дат - PullRequest
0 голосов
/ 11 июля 2019

Я хочу выбрать уникальные даты из нескольких строк, а строки с максимальным (значением) из другого столбца.

Таблица 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 голосов
/ 11 июля 2019

Ваш приведенный выше пример

данные таблицы

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

В приведенном выше запросе вы можете группировать по дате, а в выборе использовать функцию max.

0 голосов
/ 11 июля 2019

Здесь нет необходимости в подзапросе.Это можно сделать просто так:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...