У меня есть схема, как показано ниже, и я хочу запустить запрос, где я получаю столбец на выходе для каждой строки таблицы points
.Запрос PostgreSQL с созданными столбцами
Таким образом, для каждой строки usage
Я хочу, чтобы умножить amount
времен использования цифровых amount
для ссылочного points_id
, а затем просуммировать, что и группа по лицу. Таким образом, для примера данных я хочу, чтобы результат, который выглядел так:
Name | foo | bar | baz
-------|------|------|------
Scott | 10.0 | 24.0 | 0.0
Sam | 0.0 | 0.0 | 46.2
Вот схема/данные:
CREATE TABLE points (
ident int primary key NOT NULL,
abbrev VARCHAR NOT NULL,
amount real NOT NULL
);
CREATE TABLE usage (
ident int primary key NOT NULL,
name VARCHAR NOT NULL,
points_id integer references points (ident),
amount real
);
INSERT INTO points (ident, abbrev, amount) VALUES
(1, 'foo', 1.0),
(2, 'bar', 2.0),
(3, 'baz', 3.0);
INSERT INTO usage (ident, name, points_id, amount) VALUES
(1, 'Scott', 1, 10),
(2, 'Scott', 2, 12),
(3, 'Sam', 3, 3.4),
(4, 'Sam', 3, 12);
Я использую PostgreSQL 9.2.8
Данные просто образец. Есть тысячи строк в реальном столе usage
и, вероятно, десяток в таблице points
. Настоящее намерение здесь заключается в том, что я не хочу жестко кодировать все суммы points
, поскольку я использую их во многих функциях.
Это специфичные для данных, представленных. Я просто приводил некоторые примеры данных. Существуют тысячи строк «использования» и более дюжины «точек». Нужно быть динамичным. – Gargoyle
@Gargoyle: проверьте обновленный запрос. –
Ничего себе, это круто. Благодаря! – Gargoyle