У меня есть база данных sqlite с именем heroes, где я пытаюсь найти вторую старую дату для каждого человека, который использовал эту услугу. Для того, чтобы найти самую старую дату, я просто использовал:sqlite, выберите вторую по величине в каждой группе
SELECT MIN(Date), Cust_Num FROM heroes GROUP BY Cust_Num;
Теперь я использую следующий, чтобы найти вторую старейшую дату:
SELECT MAX(Date), Cust_Num FROM heroes WHERE Date IN (SELECT Date FROM heroes ORDER BY Date LIMIT 2) GROUP BY Cust_Num;
Однако, это только дает мне 9 людей, которые использовали услуга во второй раз в первый день есть данные. Любой совет?
Спасибо!
Я бы создал временную таблицу, упорядоченную так, как я хочу, и использую «ROWID» таблицы temp, чтобы получить требуемое значение. –
не обязательно самый чистый способ, но я только что создал новую базу данных из исходного csv, удалил строки min и снова выполнил мой первый запрос. – Nolan
дубликат [Получите вторую последнюю дату на один идентификатор, а не последнюю версию) (http: /stackoverflow.com/questions/26662167/get-back-the-second-latest-date-per-id-instead-of-the-latest) –