在 DB2 中需要 Group by 的帮助
Need help in Group by in DB2
这是Parent_Childtable。
PARENT CHILD EFF_DATE
22716 2528 3/8/2011
22716 5696 3/8/2011
22716 3698 3/8/2011
22716 5698 3/18/2010
37091 4569 10/22/2013
37091 6931 9/17/2014
查询结果应如下所示:
PARENT CHILD EFF_DATE
22716 2528 3/8/2011
22716 5696 3/8/2011
22716 3698 3/8/2011
37091 6931 9/17/2014
已尝试查询:
SELECT DISTINCT P.PARENT,P.CHILD,C.MAX_DATE
FROM parent_child P
INNER JOIN
(SELECT CHILD,MAX(EFF_DT) AS MAX_DATE
FROM parent_child
GROUP BY CHILD) C
ON P.CHILD=C.CHILD AND P.EFF_DT=C.MAX_DATE
ORDER BY P.PARENT
但我最终得到了父 37091 的两个值。
感谢任何帮助。
需要更改
- change inner query to group on parent instead of child
- change join condition to match on parent
查询
SELECT DISTINCT P.PARENT,P.CHILD,C.MAX_DATE
FROM parent_child P
INNER JOIN
(SELECT PARENT,MAX(EFF_DT) AS MAX_DATE
FROM parent_child
GROUP BY PARENT) C
ON P.PARENT=C.PARENT
AND P.EFF_DT=C.MAX_DATE
ORDER BY P.PARENT
;
输出
PARENT CHILD MAX_DATE
22716 2528 March, 08 2011 00:00:00
22716 5696 March, 08 2011 00:00:00
22716 3698 March, 08 2011 00:00:00
37091 6931 September, 17 2014 00:00:00
这是Parent_Childtable。
PARENT CHILD EFF_DATE
22716 2528 3/8/2011
22716 5696 3/8/2011
22716 3698 3/8/2011
22716 5698 3/18/2010
37091 4569 10/22/2013
37091 6931 9/17/2014
查询结果应如下所示:
PARENT CHILD EFF_DATE
22716 2528 3/8/2011
22716 5696 3/8/2011
22716 3698 3/8/2011
37091 6931 9/17/2014
已尝试查询:
SELECT DISTINCT P.PARENT,P.CHILD,C.MAX_DATE
FROM parent_child P
INNER JOIN
(SELECT CHILD,MAX(EFF_DT) AS MAX_DATE
FROM parent_child
GROUP BY CHILD) C
ON P.CHILD=C.CHILD AND P.EFF_DT=C.MAX_DATE
ORDER BY P.PARENT
但我最终得到了父 37091 的两个值。
感谢任何帮助。
需要更改
- change inner query to group on parent instead of child
- change join condition to match on parent
查询
SELECT DISTINCT P.PARENT,P.CHILD,C.MAX_DATE
FROM parent_child P
INNER JOIN
(SELECT PARENT,MAX(EFF_DT) AS MAX_DATE
FROM parent_child
GROUP BY PARENT) C
ON P.PARENT=C.PARENT
AND P.EFF_DT=C.MAX_DATE
ORDER BY P.PARENT
;
输出
PARENT CHILD MAX_DATE 22716 2528 March, 08 2011 00:00:00 22716 5696 March, 08 2011 00:00:00 22716 3698 March, 08 2011 00:00:00 37091 6931 September, 17 2014 00:00:00