SELECT ID, SUM(a) as a, SUM(b) as B
FROM MyTable
GROUP BY ID
Это то, для чего предназначена группировка и агрегирование!
К вашему сведению, так работает агрегация:
Когда вы группируете и агрегируете поля, выобъединяют записи в одну строку.
В вашем операционном файле вы хотели видеть SUM
из A
для каждого значения ID
.Это то, что делает исходный запрос, который я разместил.
Вы также хотите включить B
, которое является полем varchar
, согласно вашим комментариям.
В этом случае вам нужнорешить, что делать с B
.Поскольку вы группируете несколько строк вместе, существует (потенциально) несколько значений B
на значение ID
.Вам также необходимо:
- Группировать по
B
, что добавит дополнительные строки - Применить агрегацию, например
MAX()
, MIN()
и т. Д. К B
- Исключить
B
из списка результатов.