SELECT location , SUM(pizza_amt) AS pizza_sales,SUM(burger_amt) AS burger_sales,SUM(salad_amt) AS salad_sales
FROM (
SELECT location , DECODE(prod_name,'PIZZA',sales_amt,0) pizza_amt,
DECODE(prod_name,'BURGER',sales_amt,0) burger_amt,
DECODE(prod_name,'SALAD',sales_amt,0) salad_amt
FROM prod_sales)
GROUP BY location
/* An alternate way to decode for changing rows to cols: */
SELECT location,SUM(pizza) AS pizza , SUM(burger) AS burger , SUM(salad) AS salad
FROM (
SELECT location ,
CASE
WHEN prod_name = 'PIZZA' THEN sales_amt ELSE 0 END AS pizza ,
CASE
WHEN prod_name = 'BURGER' THEN sales_amt ELSE 0 END AS burger,
CASE
WHEN prod_name = 'SALAD' THEN sales_amt ELSE 0 END AS salad
FROM prod_sales)
GROUP BY location;