gpt4 book ai didi

sql - 查询以获取每条记录的最小日期

转载 作者:行者123 更新时间:2023-12-04 05:00:25 28 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How to get minimum date by each records from multiple records

(2 个回答)


8年前关闭。




我想获得我的表中每条记录的最小日期,其中有多个日期条目和一个主键。看看我的表:

   CaseNo     Entry_date   
ABC-001 2/12/13
ABC-002 2/09/13
ABC-001 1/01/13
ABC-001 1/31/13
ABC-002 1/01/13
ABC-003 2/01/12
ABC-003 2/18/13

我想要这样的结果:
       CaseNo     Entry_date    Min_date
ABC-001 2/12/13 1/01/13
ABC-002 2/09/13 1/09/13
ABC-001 1/01/13 1/01/13
ABC-001 1/31/13 1/01/13
ABC-002 1/09/13 1/09/13
ABC-003 2/01/12 2/01/13
ABC-003 2/18/13 2/01/13

我想获得记录在我的 table 上的每个 CaseNo 的最小日期。我试过这个代码:
Select
CaseNo,Entry_date, Min(Entry_date) as Min_date
from mytable group by CaseNo

结果是这样的:
   CaseNo     Entry_date    Min_date
ABC-001 1/01/13 1/01/13
ABC-002 1/09/13 1/09/13
ABC-003 2/01/12 2/01/13

该代码删除没有最小日期的行。我想显示所有记录的最小日期为 Min_date .

最佳答案

您可以使用 CTE 或子查询来解决它。 CTE 具有更好的性能。

子查询版本

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

CTE版本
WITH CasesMinEntryDate(CaseNo, MinEntryDate) AS 
(
SELECT CaseNo, MIN(Entry_date) FROM Cases GROUP BY CaseNo
)
SELECT
c.CaseNo,
Entry_date,
MinEntryDate
FROM Cases c
INNER JOIN CasesMinEntryDate cmed ON c.CaseNo=cmed.CaseNo;

http://sqlfiddle.com/#!3/0feee/8

关于sql - 查询以获取每条记录的最小日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16208159/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com