Как я понял ваш запрос вам нужно подвести итог по итогам только в случае, если агент х, у, г
Так как вложенный запрос:
SELECT "Agent", sum("Overrides")
FROM
(
SELECT
"public"."rdf_dean"."agent_name" AS "Agent",
SUM("public"."rdf_dean"."paidcomm" *.9) AS "Paid to Agent",
SUM("public"."rdf_dean"."paidcomm" *.1) AS "Overrides"
FROM "public"."rdf_dean"
WHERE "public"."rdf_dean"."created_date" = date(now())
GROUP BY agent_name
) as data
WHERE
data."Agent" in (x, y, z)
Или
SELECT
"public"."rdf_dean"."agent_name" AS "Agent",
SUM("public"."rdf_dean"."paidcomm" *.9) AS "Paid to Agent",
SUM("public"."rdf_dean"."paidcomm" *.1) AS "Overrides"
FROM "public"."rdf_dean"
WHERE "public"."rdf_dean"."created_date" = date(now())
AND "public".rdf_dean.agent_name in (x, y, z)
GROUP BY agent_name
Или, если вам нужно иметь оба, Пайде Агенту и переопределяет только агентами
SELECT
"public"."rdf_dean"."agent_name" AS "Agent",
SUM("public"."rdf_dean"."paidcomm" *.9) AS "Paid to Agent",
SUM("public"."rdf_dean"."paidcomm" *.1) AS "Overrides",
(SELECT SUM("public"."rdf_dean"."paidcomm" *.1)
FROM "public"."rdf_dean" internal
WHERE
internal.agent_name = out.agent_name
AND
internal.agent_name in (x, y, z) ) AS "OverridesXYZ"
FROM "public"."rdf_dean" out
WHERE "public"."rdf_dean"."created_date" = date(now())
GROUP BY agent_name
Или вы можете
SELECT
"public"."rdf_dean"."agent_name" AS "Agent",
SUM("public"."rdf_dean"."paidcomm" *.9) AS "Paid to Agent",
SUM("public"."rdf_dean"."paidcomm" *.1) AS "Overrides",
SUM(internal.paidcomm * .1) AS "OverridesXYZ"
FROM "public"."rdf_dean" out
LEFT JOIN public.rdf_dean internal ON internal.agent_name = out.agent_name AND internal.agent_name in (x, y, z)
WHERE "public"."rdf_dean"."created_date" = date(now())
GROUP BY agent_name
Несвязанный, но: 'отчетный' есть ** NOT ** a функция. 'distinct (a), b, c' - это то же самое, что и' different a, b, c' или 'distinct a, b, (c)' –
Спасибо, я просто скопировал и вставил и не взял круглые скобки , ленивый –