Я хочу сделать SUM-вычисление, которое несколько раз вызывает мой столбец 'Q' и QBUYERS
, но в разных строках это моя таблица:
group type Q QBUYERS
GROUP1 sent 300 200
GROUP2 shown 400 100
GROUP3 sent 200 150`
И этовот что я пытаюсь сделать:
SELECT
notification_batch_id AS group,
(secondrow) QBUYERS AS PAYERS_EXPOSED,
SUM(
CASE
WHEN (firstrow)Q <> 0 AND (secondrow)Q <> 0 AND (thirdrow)Q <> 0
THEN (
(
((firstrow)QBUYERS / (firstrow)Q) -
((thirdrow)QBUYERS / (thirdrow)Q)
) / ((secondrow)Q / (firstrow)Q)
)
ELSE 0
END
) AS CVR_INCREMENTAL FROM MYTABLE
GROUP BY group;
По сути, делаю вычисления между моими числовыми значениями, а затем группирую свои результаты.Но я не знаю, как «вызвать» мои 300, 400, 200 и т. Д., Не выделив весь столбец.
Я также попробовал это:
SELECT
b.QBUYERS AS PAYERS_EXPOSED,
SUM(
CASE
WHEN a.Q <> 0 AND b.Q <> 0 AND c.Q <> 0
THEN (((a.QBUYERS / a.Q) - (c.QBUYERS / c.Q)) / (b.Q/a.Q))
ELSE 0
END
) AS CVR_INCREMENTAL
FROM (
SELECT * FROM BASE_FIRST a
UNION
SELECT * FROM BASE_SECOND b
UNION
SELECT * FROM BASE_THIRD c
) AS mytable
BASE_FIRST:
group type Q QBUYERS
GROUP1 sent 300 200`
BASE_SECOND:
group type Q QBUYERS
GROUP2 sent 400 100`
и так далее ... но это не сработало.
Возможно ли это сделать на TERADATA?