嗨我想知道是否有办法从与min相关的行中获取信息。因此,在以下示例中,我想简单地找回每个客户的最小(日期)和相关信息。
Cust_id Date information
-----------------------------------------------------
12345 2015-04-03 blue hat
12345 2015-04-05 red scarf
12345 2015-04-02 blue hat
12345 2015-04-08 yellow submarine
54321 2015-04-12 yellow submarine
结果如下:
Cust_id Date information
-----------------------------------------------------
12345 2015-04-02 blue hat
54321 2015-04-12 yellow submarine
目前,为了解决这个问题,我会使用临时表或子查询来获取每个客户的最小值(日期)并在该日期加入表格。
SELECT cust_id
, MIN(date)
INTO #TempTable
FROM dataset
GROUP BY cust_id
SELECT cust_id
, date
, information
FROM dataset A INNER JOIN #TempTable B ON A.cust_id = B.cust_id
AND A.date = B.date
这种方法有效,但我想在一次拉动中有一种更清洁,更简单的方法。也许是一个我不知道的功能?
非常感谢任何帮助,建议,示例或来源,
谢谢,
鲍勃
答案 0 :(得分:0)
不是创建临时表,而是在子查询中获取最小值,并在外部查询中连接回主表:
SELECT A.cust_id
, A.date
, A.information
FROM dataset A
INNER JOIN (SELECT cust_id
, MIN(date) as mindate
FROM dataset
GROUP BY cust_id
) B ON A.cust_id = B.cust_id AND A.date = B.mindate