Я представляю, что вы ищете что-то вроде этого:
SELECT
name,
producent,
model,
number,
SUM(quantity),
warehouse,
location
FROM store
WHERE
quantity > 0
GROUP BY
name,
producent,
model,
number,
warehouse,
location
ORDER BY
number;
Я удалил id
из выбранных полей, так как вы уже объявляете это как поле UNIQUE
(PRIMARY KEY
) в операторе CREATE TABLE
ранее (потому что оно автоматически инкрементируется последовательностью, которую вы объявляете). Вы никогда не хотите группировать по полю UNIQUE
- оно даст вам те же результаты, что и без него.
Но чтобы быть уверенным, нам нужно знать, как вы хотите, чтобы ваш вывод выглядел.
Практическое правило при группировании результатов с SQL таково: всегда включайте все поля, выбранные вне агрегатной функции, в предложение GROUP BY
.
Обновление
Вы отредактировали свой вопрос, поэтому исходный запрос, который вы включили, пропал. Но похоже, что вы включили результаты, которые вы хотите вместо этого. Вот как вы их получите:
SELECT
name,
number,
SUM(quantity) as "quantity"
FROM store
WHERE
quantity > 0
GROUP BY
name,
number
ORDER BY
number;
Я надеюсь, что вы можете принять такой ответ.