У меня есть таблица ниже.Я хочу объединить несколько столбцов и GROUP BY
store
.Проблема в том, что если upc
отрицательно и есть соответствующее положительное значение upc
, я хочу, чтобы оно всегда выбирало положительное число.Если нет соответствующего положительного значения upc
, то сохранение отрицательного значения - это нормально.Кроме того, когда я пытаюсь выполнить аналогичный запрос в Google BigQuery (который, на мой взгляд, использует MySQL) и пропускаю upc
из GROUP BY
, я получаю сообщение об ошибке «ВЫБРАТЬ столбец со ссылками на выражения списка upc, который не группируется и не агрегируется».Любая идея, почему BigQuery ведет себя не так, как MySQL, и как заставить запрос всегда принимать положительные значения upc
?
Спасибо
CREATE TABLE upc (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
store VARCHAR(30) NOT NULL,
amount DOUBLE,
total INT,
upc INT
);
INSERT INTO upc (store, amount, total, upc) VALUES
('123', 12.3, 1, 123),
('123', 45.6, 2, -666),
('789', 78.9, 3, 789),
('789', 78.9, 3, 789),
('456', 78.9, 3, -456),
('456', 78.9, 3, -456),
('123', 78.9, 3, 123);
SELECT store, SUM(amount), SUM(total), upc FROM upc
GROUP BY store;