我试图分别查找分割交易和单个交易的数量之和,txns的计数,dollar_value_us的总和以及保证金的计算。
下面是我正在使用的事务,但是它的作用是,它检查该表中是否存在任何SKU(而903633确实存在),然后聚合整个事务,包括不在POD_SKU中的SKU。 / p>
我希望得到的是数量总和,零售价值总和(仅用于拆分交易),然后数量总和,仅零售总和。以便将其总计为总交易数据。例如A + B = C
我目前正在使用以下查询,并且我也有一个示例数据库:
SELECT v.transaction_type
, COUNT(DISTINCT v.transaction_number) AS transaction_count
, COUNT(DISTINCT v.individual_id) AS customer_count
, SUM(v.quantity) AS units
, SUM(v.dollar_value_us) AS sales
, SUM(v.dollar_value_us - v.cogs * v.quantity) AS profit FROM (SELECT td.transaction_number, td.sku, td.quantity, td.dollar_value_us, td.individual_id, td.cogs,
CASE
WHEN COUNT(ps.sku) OVER (PARTITION BY td.transaction_number) > 0
THEN 'Yes'
ELSE 'No'
END AS has_pod_sku,
CASE
WHEN COUNT(ps.sku) OVER (PARTITION BY td.transaction_number) > 0
AND COUNT(ps.sku) OVER (PARTITION BY td.transaction_number)
< COUNT(*) OVER (PARTITION BY td.transaction_number)
THEN 'Split'
ELSE 'Single'
END AS transaction_type
FROM transaction_detail_mv td
LEFT OUTER
JOIN pod_sku ps on ps.sku = td.sku
) v WHERE has_pod_sku = 'Yes' GROUP BY v.transaction_type
下面是示例数据库的链接:
https://dbfiddle.uk/?rdbms=oracle_11.2&fiddle=07e5283cb4c06e4260ff266ff5d36f1a