Учитывая эти данные:
CREATE TABLE sales (
id SERIAL PRIMARY KEY,
date TEXT,
location TEXT,
amount INT
);
INSERT INTO sales (date, location, amount) VALUES
('Mon', 'One', 10),
('Mon', 'Two', 15),
('Mon', 'One', 12),
('Tue', 'One', 13),
('Tue', 'Thr', 17)
;
Вы можете вручную построить столбцы, например, так:
SELECT
date,
SUM(CASE WHEN location='One' THEN amount ELSE 0 END) AS loc_one,
SUM(CASE WHEN location='Two' THEN amount ELSE 0 END) AS loc_two
FROM
sales
GROUP BY date
ORDER BY date;
Но, возможно, более надежным решением является использование группировки в обоих полях.
SELECT
date,
location,
SUM(amount)
FROM
sales
GROUP BY date, location
ORDER BY date, location;
SQLFiddle at: http://www.sqlfiddle.com/#!17/7417e/9