按一列分组,对另一个 w 求和。重复条目(交易的总交易价值,包括特定产品)
group by one column, sum over another w. repeating entries (total transaction value for transactions incl a specific product)
我有 table 笔交易,我想为每个产品计算包括该产品在内的交易的总交易价值。
+---------------+-----------+----------+-----------+
| TransactionId | ProductId | Quantity | UnitPrice |
+---------------+-----------+----------+-----------+
| 1 | A | 2 | 3.00 |
| 1 | B | 1 | 6.00 |
| 2 | B | 1 | 6.00 |
| 3 | A | 6 | 3.00 |
| 3 | C | 2 | 8.00 |
+---------------+-----------+----------+-----------+
例如,产品 A 在两个交易中:交易 1 和交易 3。交易 1 的总收入是产品 A 的 6.00 和产品 B 的 6.00,总计 12.00。交易 3 的总收入是产品 A 的 18.00 和产品 C 的 16.00,总计 34.00。因此,包括产品 A 在内的交易总收入为 12.00 + 34.00 = 46.00。
我想要 select 以下内容(鉴于上面的 table):
+-----------+----------------+
| ProductId | TotalBasketRev |
+-----------+----------------+
| A | 46.00 |
| B | 18.00 |
| C | 34.00 |
+-----------+----------------+
我还需要能够为 Redshift 执行此操作。
感谢您的任何见解。
首先您需要计算每笔交易的总额。
然后加入原来的 table 并对每个产品进行分组以总结每个参与交易的总和。
SELECT T."ProductId", SUM(TTotal.total)
FROM Transactions T
JOIN
(
SELECT "TransactionId", SUM ("Quantity" * "UnitPrice") total
FROM Transactions
GROUP BY "TransactionId"
) Ttotal
ON T."TransactionId" = TTotal."TransactionId"
GROUP BY T."ProductId"
ORDER BY T."ProductId"
输出
| ProductId | sum |
|-----------|-----|
| A | 46 |
| B | 18 |
| C | 34 |
我有 table 笔交易,我想为每个产品计算包括该产品在内的交易的总交易价值。
+---------------+-----------+----------+-----------+
| TransactionId | ProductId | Quantity | UnitPrice |
+---------------+-----------+----------+-----------+
| 1 | A | 2 | 3.00 |
| 1 | B | 1 | 6.00 |
| 2 | B | 1 | 6.00 |
| 3 | A | 6 | 3.00 |
| 3 | C | 2 | 8.00 |
+---------------+-----------+----------+-----------+
例如,产品 A 在两个交易中:交易 1 和交易 3。交易 1 的总收入是产品 A 的 6.00 和产品 B 的 6.00,总计 12.00。交易 3 的总收入是产品 A 的 18.00 和产品 C 的 16.00,总计 34.00。因此,包括产品 A 在内的交易总收入为 12.00 + 34.00 = 46.00。
我想要 select 以下内容(鉴于上面的 table):
+-----------+----------------+
| ProductId | TotalBasketRev |
+-----------+----------------+
| A | 46.00 |
| B | 18.00 |
| C | 34.00 |
+-----------+----------------+
我还需要能够为 Redshift 执行此操作。
感谢您的任何见解。
首先您需要计算每笔交易的总额。
然后加入原来的 table 并对每个产品进行分组以总结每个参与交易的总和。
SELECT T."ProductId", SUM(TTotal.total)
FROM Transactions T
JOIN
(
SELECT "TransactionId", SUM ("Quantity" * "UnitPrice") total
FROM Transactions
GROUP BY "TransactionId"
) Ttotal
ON T."TransactionId" = TTotal."TransactionId"
GROUP BY T."ProductId"
ORDER BY T."ProductId"
输出
| ProductId | sum |
|-----------|-----|
| A | 46 |
| B | 18 |
| C | 34 |