2015-05-14 8 views
-1

У меня есть таблица, где указаны столбцы: regno, dt, visitno и symptom_code. Я бы хотел получить данные из последнего посещения regno. Пожалуйста, предложите SQL-запрос.SQL-запрос для извлечения данных из последнего посещения конкретного столбца

+2

Сообщение правильной структуры таблицы с данными выборки и вывода образца и пост ваш код, который вы пробовали до сих пор – Matt

+2

, а также сообщить СУБД, который вы используете? –

+0

, а также что вы пробовали. ваш образец кода, по крайней мере. –

ответ

2

Каждая СУБД поддерживает это:

SELECT * 
FROM tab AS t1 
WHERE dt = 
(SELECT MAX(dt) FROM tab AS t2 
    WHERE t1.regno = t2.regno) 

Большинство DBMSes поддерживают Оконный агрегатные функции, проще писать и обычно более эффективным:

SELECT * 
FROM 
(SELECT ... 
    ,RANK() 
     OVER (PARTITION BY regno 
      ORDER BY dt DESC) AS rnk 
    FROM tab 
) AS dt 
WHERE rnk = 1 
+0

спасибо dnoeth, – ajay

Смежные вопросы