[当我在SUBQUERY
中添加多个客户名称时,我从QUERY
获得了反馈,但是,即使您仅输入一个值,即使使用IN
条件,QUERY
也可以正常工作
查询失败
SELECT "CUSTOMER",
( ( ( ( CAST(COUNT(*) AS FLOAT) ) - (
SELECT
(CAST(COUNT(*) AS FLOAT))
FROM
public.tbl_metrics
WHERE
"CUSTOMER" IN (
'CLIENT1','CLIENT2','CLIENT3'
)
AND "STATUS" = 'NOT_TESTED'
GROUP BY
"STATUS",
"CUSTOMER"
) ) / CAST(COUNT(*) AS INT) ) * 100) as "PERCENT", count("STATUS") as "OK"
FROM
public.tbl_metrics
WHERE
"CUSTOMER" IN (
'CLIENT1','CLIENT2','CLIENT3'
)
AND "STATUS" = 'NOK'
GROUP BY
"STATUS",
"CUSTOMER"
成功查询
SELECT "CUSTOMER",
( ( ( ( CAST(COUNT(*) AS FLOAT) ) - (
SELECT
(CAST(COUNT(*) AS FLOAT))
FROM
public.tbl_metrics
WHERE
"CUSTOMER" IN (
'CLIENT1'
)
AND "STATUS" = 'NOT_TESTED'
GROUP BY
"STATUS",
"CUSTOMER"
) ) / CAST(COUNT(*) AS INT) ) * 100) as "PERCENT", count("STATUS") as "OK"
FROM
public.tbl_metrics
WHERE
"CUSTOMER" IN (
'CLIENT1'
)
AND "STATUS" = 'NOK'
GROUP BY
"STATUS",
"CUSTOMER"
我建议从一个简单的版本开始,使其正常运行,然后添加额外的计算(即百分比)。这是一个粗略的入门查询(不保证它能正常工作,因为我无权访问您的表,并且正在猜测这就是您希望完成的工作)。
SELECT met."CUSTOMER",
( SELECT COUNT(*)
FROM
public.tbl_metrics innerMet
WHERE
innerMet."CUSTOMER"= met."CUSTOMER"
AND "STATUS" = 'NOT_TESTED'
) as "NOT_TESTED", count("STATUS") as "OK"
FROM
public.tbl_metrics met
WHERE
met."CUSTOMER" IN (
'CLIENT1','CLIENT2','CLIENT3'
)
AND met."STATUS" = 'NOK'
GROUP BY
met."STATUS",
met."CUSTOMER"