Я ищу данные о госпитале, и есть несколько строк с одинаковой датой поступления. Я хочу только одну дату приема на одного пациента. Если есть несколько строк с одинаковой датой поступления, я хочу выбрать строку с наибольшим LOS, или когда LOS равны, я хочу выбрать тот, у которого самая старая дата приема. Например, учитывая следующие данные:SQL: выбор строки с наименьшим значением
ID ADMIT DC LOS CLMID
-- ----- -- --- -----
1 1-1-07 1-1-07 0 XXX
1 1-2-07 1-2-07 0 XXX
2 1-5-07 1-10-07 5 YYY
3 2-8-07 2-8-07 0 ZZZ
3 2-8-07 2-12-07 4 ZZZ
3 2-8-07 2-10-07 2 ZZZ
Я хотел бы выбрать:
ID ADMIT DC LOS CLMID
-- ----- -- --- -----
1 1-1-07 1-1-07 0 XXX
2 1-5-07 1-10-07 5 YYY
3 2-8-07 2-12-07 4 ZZZ
Я попытался с помощью функции aggregrate MIN, но я довольно потерял о том, как попасть туда, куда я хотеть. Я новичок в SQL и буду признателен за любую помощь!
До сих пор это мой лучший выстрел:
SELECT DISTINCT
ID, ADMIT, DC, LOS, CLMID, MIN(ADMIT)
FROM
TABLE1
GROUP BY
ID, ADMIT, DC, LOS, CLMID
ORDER BY
ID
Я также попытался просто выбрать только максимальное LOS вместо минимума признать, но это не делает его либо.
Спасибо :)
Это 'MySQL' или' SQL Server'? –
Опубликуйте свой лучший снимок при решении вашей проблемы. –
Прошу прощения - это SQL Server. Я так новичок>< – Ashley