MAX значение столбца с соответствующими столбцами - PullRequest
0 голосов
/ 12 сентября 2018

Я использую старый SQL Server 2000.

Вот некоторые примеры данных:

ROOMDATE                rate    bus_id  quantity
2018-09-21 00:00:00.000  129    346686  2
2018-09-21 00:00:00.000  162    354247  36
2018-09-21 00:00:00.000  159    382897  150
2018-09-21 00:00:00.000  120    556111  25
2018-09-22 00:00:00.000  129    346686  8
2018-09-22 00:00:00.000  162    354247  86
2018-09-22 00:00:00.000  159    382897  150
2018-09-22 00:00:00.000  120    556111  25
2018-09-23 00:00:00.000  129    346686  23
2018-09-23 00:00:00.000  162    354247  146
2018-09-23 00:00:00.000  159    382897  9
2018-09-23 00:00:00.000  94     570135  23

По сути, я хочу получить МАКС. Количество каждого дня с соответствующей скоростью иbus_id.

Например, я хотел бы получить следующие строки из моих приведенных выше образцов данных:

ROOMDATE                rate    bus_id  quantity
2018-09-21 00:00:00.000  159    382897  150
2018-09-22 00:00:00.000  159    382897  150
2018-09-23 00:00:00.000  162    354247  146

1 Ответ

0 голосов
/ 12 сентября 2018

Из того, что я прочитал, SQL Server 2000 не поддерживает ROW_NUMBER. Но мы можем сформулировать ваш запрос, используя подзапрос, который находит максимальное количество за каждый день:

SELECT t1.*
FROM yourTable t1
INNER JOIN
(
    SELECT
        CONVERT(char(10), ROOMDATE, 120) AS ROOMDATE,
        MAX(quantity) AS max_quantity
    FROM yourTable
    GROUP BY CONVERT(char(10), ROOMDATE, 120)
) t2
    ON CONVERT(char(10), t1.ROOMDATE, 120) = t2.ROOMDATE AND
       t1.quantity = t2.max_quantity
ORDER BY
    t1.ROOMDATE;

enter image description here

Демо

...