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.
CREATE TABLE PRICE_DATA(
PRODUCT_CODE VARCHAR(50),
PRICING_DATE DATETIME,
PRICE FLOAT
);


INSERT INTO PRICE_DATA VALUES ('1234','01-01-2022', 23.9);
INSERT INTO PRICE_DATA VALUES ('1234','02-01-2022', 23.9);
INSERT INTO PRICE_DATA VALUES ('1234','03-01-2022', 23.9);
INSERT INTO PRICE_DATA VALUES ('1234','04-01-2022', 22.9);
INSERT INTO PRICE_DATA VALUES ('1234','05-01-2022', 22.9);
INSERT INTO PRICE_DATA VALUES ('1234','06-01-2022', 24.9);
INSERT INTO PRICE_DATA VALUES ('1234','07-01-2022', 24.9);
INSERT INTO PRICE_DATA VALUES ('1234','08-01-2022', 23.9);
INSERT INTO PRICE_DATA VALUES ('1234','09-01-2022', 23.9);
9 rows affected
SELECT Product_Code,
min(Pricing_Date) AS Min_Date ,
max(Pricing_Date) AS Max_Date,
price
FROM (
SELECT *,
ROW_NUMBER() OVER(ORDER BY PRICING_DATE) - ROW_NUMBER() OVER(PARTITION BY PRODUCT_CODE,PRICE ORDER BY PRICING_DATE) grp
FROM PRICE_DATA
) t1
GROUP BY grp,Product_Code,price
ORDER BY min(Pricing_Date)
Product_Code Min_Date Max_Date price
1234 2022-01-01 00:00:00.000 2022-03-01 00:00:00.000 23.9
1234 2022-04-01 00:00:00.000 2022-05-01 00:00:00.000 22.9
1234 2022-06-01 00:00:00.000 2022-07-01 00:00:00.000 24.9
1234 2022-08-01 00:00:00.000 2022-09-01 00:00:00.000 23.9