How to get minimum date by each records from multiple records

岁酱吖の 提交于 2019-12-02 11:27:13

try this

SELECT
  CaseNo,
  Entry_date,
  (SELECT MIN(Entry_date) FROM Cases subc WHERE subc.CaseNo=c.CaseNo GROUP BY CaseNo) AS MinEntryDate
FROM Cases c
pilcrow

Unsure what RDBMS you're using, but two approaches come to mind.

JOIN against derived table

Create a derived table of (CaseNo, MIN(Entry_date)) rows, and join that against your primary table:

    SELECT CaseNo, Entry_date, d.Min_date AS "Min_date"
      FROM tbl
INNER JOIN (  SELECT CaseNo, MIN(Entry_date) AS "Min_date"
                FROM tbl
            GROUP BY 1) d
        ON tbl.CaseNo = d.CaseNo;

Use analytic (window) functions

If your RDBMS supports it, you can skip the derived table and ask for your records with the minimum Entry_date by CaseNo provided by the system:

SELECT CaseNo, Entry_date, MIN(Entry_date) OVER (PARTITION BY CaseNo) AS "Min_date"
  FROM tbl;
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!