Возврат суммы элементов в зависимости от того, какого они типа
-
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]