add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
WITH emp AS (
SELECT 7369 AS id, 'SMITH' AS name, 1 AS order_id, 5 AS VALUE UNION ALL
SELECT 7499, 'ALLEN', 2, 10 UNION ALL
SELECT 7521, 'JONES', 3, 15 UNION ALL
SELECT 7566, 'JONES', 4, 5 UNION ALL
SELECT 7568, 'JONES', 5, 10
),
cte AS (
SELECT *, MIN(order_id) OVER (PARTITION BY name) min_order_id
FROM emp
)

SELECT
name,
MIN(order_id) AS f_order,
MAX(order_id) AS l_order,
SUM(VALUE) AS total_order_value,
SUM(CASE WHEN order_id = min_order_id THEN VALUE ELSE 0 END) AS f_order_value
FROM cte
GROUP BY
name;



name f_order l_order total_order_value f_order_value
ALLEN 2 2 10 10
JONES 3 5 30 15
SMITH 1 1 5 5