Возврат суммы элементов в зависимости от того, какого они типа

StackOverflow https://stackoverflow.com/questions/30563

  •  09-06-2019
  •  | 
  •  

Вопрос

У меня есть одно поле, которое мне нужно суммировать

когда я говорю «сгруппированы», я имею в виду, что есть ЛЕВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ с другой таблицей, в предыдущей таблице есть тип элементов, а в той, к которой присоединяются, есть группа, назначенная для этого типа элементов.

Извините, ребята, я немного новичок в sql. Я собираюсь попробовать то, что вы мне дали, и вернусь к вам.

Хорошо, я чувствую, что мы приближаемся, но еще не все. Я могу заставить их разделить, но мне нужно, чтобы обе группы суммировались в одной строке, что сложно, потому что у меня также задействовано несколько LEFT OUTER JOIN.

Похоже, с Тайлером это тоже может сработать, поэтому я пытаюсь разобраться с этим очень быстро.

Кажется, вариант Алена подойдет, но мне придется еще немного подправить его.

Это было полезно?

Решение

Возможно, я не понимаю сложности того, о чем вы спрашиваете, но...разве этого не должно быть?

SELECT groupname, SUM(value)
FROM items
WHERE groupname IN ('a', 'b')
GROUP BY groupname

И если вам все равно, к какому из a или b принадлежит элемент, то подойдет следующее:

SELECT SUM(value)
FROM items
WHERE groupname IN ('a', 'b')

Другие советы

Вы хотите что-то вроде

SELECT column,SUM( column ) FROM table GROUP BY column

Это (ответ Тайлера) то, что имел в виду вопрос, или это просто это;

SELECT sum(item), groupingField FROM someTable GROUP BY groupingField

или даже:

SELECT count(*), item FROM someTable GROUP BY item

который даст такие результаты:

sum(item)    |     groupingField
-------------+-----------------------
 71          |          A
 82          |          B

Вопрос, возможно, вы могли бы уточнить, что вы имели в виду, или я упрощаю?

Попробуй это:

SELECT B.[Group], COUNT(*) AS GroupCount
FROM Table1 A
LEFT JOIN Table2 B ON B.ItemType=A.ItemType
GROUP BY B.[Group]
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top