I'm looking for the equivalent databricks code for the query. I added some sample code and the expected as well, but in particular I'm looking for the equivalent code in Databricks for the query. For the moment I'm stuck on the CROSS APPLY STRING SPLIT part.
Sample SQL data:
CREATE TABLE FactTurnover
(
ID INT,
SalesPriceExcl NUMERIC (9,4),
Discount VARCHAR(100)
)
INSERT INTO FactTurnover
VALUES
(1, 100, '10'),
(2, 39.5877, '58, 12'),
(3, 100, '50, 10, 15'),
(4, 100, 'B')
Query:
;WITH CTE AS
(
SELECT Id, SalesPriceExcl,
CASE WHEN value = 'B' THEN 0
ELSE CAST(value as int) END AS Discount
From FactTurnover
CROSS APPLY STRING_SPLIT(Discount, ',')
)
SELECT Id,
Min(SalesPriceExcl) AS SalesPriceExcludingDiscount,
EXP(SUM(LOG((100 - Discount) / 100.0))) As TotalDiscount,
Cast(EXP(SUM(LOG((100 - Discount) / 100.0))) *
MIN(SalesPriceExcl) As Numeric(9,2))
PriceAfterDiscount
FROM CTE
GROUP BY ID
Expected Results:
| Id | SalesPriceExcludingDiscount | TotalDiscount | PriceAfterDiscount |
|----|-----------------------------|---------------------|--------------------|
| 1 | 100 | 0.9 | 90 |
| 2 | 39.5877 | 0.36960000000000004 | 14.63 |
| 3 | 100 | 0.38250000000000006 | 38.25 |
| 4 | 100 | 1 | 100 |