DB2 SQL: 如何 'count' having 子句返回的记录数量
DB2 SQL: How to 'count' the amount of records returned by a having clause
Table XRDK/WHSHIPP_R3 有 4 列 - ZNWHSE、ZNSITE、ZNMANE、ZNRECD,共有 1,071 条记录。
我已经隔离了不止一次使用过的ZNMANE号码;
SELECT ZNMANE FROM XRDK/WHSHIPP_R3
GROUP BY ZNMANE
HAVING (COUNT(ZNMANE) >1)
ORDER BY 1
我想要这些孤立记录的总数,但是如果我把它改成;
SELECT COUNT(ZNMANE) FROM XRDK/WHSHIPP_R3
GROUP BY ZNMANE
HAVING (COUNT(ZNMANE) >1)
ORDER BY 1
我刚刚加载了 2s,这必须是每个 ZNMANE 记录的单独计数。
我试过了;
SELECT ZNMANE FROM XRDK/WHSHIPP_R3
GROUP BY ZNMANE
HAVING (COUNT(ZNMANE) >1)
ORDER BY 1
UNION ALL
SELECT COUNT(ZNMANE) FROM XRDK/WHSHIPP_R3
但这在顶部返回了 1071,所以我猜它只统计了整个文件。有什么想法吗?
On 方法是一个子查询:
SELECT COUNT(*)
FROM (SELECT ZNMANE
FROM XRDK/WHSHIPP_R3
GROUP BY ZNMANE
HAVING COUNT(ZNMANE) > 1
) z
如果您想要每一行中的值,请使用 window 函数:
SELECT ZNMANE, COUNT(*) OVER () as NumTotal
FROM XRDK/WHSHIPP_R3
GROUP BY ZNMANE
HAVING COUNT(ZNMANE) > 1
分组依据通常需要一个条件(您要分组依据的内容,在本例中为 ZNMANE)和聚合(在本例中为 COUNT)。
我认为您的第一个查询应该更像
SELECT ZNMANE
, COUNT(1)
FROM XRDK/WHSHIPP_R3
GROUP
BY ZNMANE
HAVING (COUNT(1) > 1)
ORDER
BY 1
你可以试试这个,看看你是否得到你需要的..
Table XRDK/WHSHIPP_R3 有 4 列 - ZNWHSE、ZNSITE、ZNMANE、ZNRECD,共有 1,071 条记录。
我已经隔离了不止一次使用过的ZNMANE号码;
SELECT ZNMANE FROM XRDK/WHSHIPP_R3
GROUP BY ZNMANE
HAVING (COUNT(ZNMANE) >1)
ORDER BY 1
我想要这些孤立记录的总数,但是如果我把它改成;
SELECT COUNT(ZNMANE) FROM XRDK/WHSHIPP_R3
GROUP BY ZNMANE
HAVING (COUNT(ZNMANE) >1)
ORDER BY 1
我刚刚加载了 2s,这必须是每个 ZNMANE 记录的单独计数。
我试过了;
SELECT ZNMANE FROM XRDK/WHSHIPP_R3
GROUP BY ZNMANE
HAVING (COUNT(ZNMANE) >1)
ORDER BY 1
UNION ALL
SELECT COUNT(ZNMANE) FROM XRDK/WHSHIPP_R3
但这在顶部返回了 1071,所以我猜它只统计了整个文件。有什么想法吗?
On 方法是一个子查询:
SELECT COUNT(*)
FROM (SELECT ZNMANE
FROM XRDK/WHSHIPP_R3
GROUP BY ZNMANE
HAVING COUNT(ZNMANE) > 1
) z
如果您想要每一行中的值,请使用 window 函数:
SELECT ZNMANE, COUNT(*) OVER () as NumTotal
FROM XRDK/WHSHIPP_R3
GROUP BY ZNMANE
HAVING COUNT(ZNMANE) > 1
分组依据通常需要一个条件(您要分组依据的内容,在本例中为 ZNMANE)和聚合(在本例中为 COUNT)。
我认为您的第一个查询应该更像
SELECT ZNMANE
, COUNT(1)
FROM XRDK/WHSHIPP_R3
GROUP
BY ZNMANE
HAVING (COUNT(1) > 1)
ORDER
BY 1
你可以试试这个,看看你是否得到你需要的..