Oracle/SQL - подсчитать количество вхождений значений в одном столбце

Хорошо, я, наверное, мог бы придумать название получше, но не знал, как его сформулировать, поэтому позвольте мне объяснить.

Скажем, у меня есть таблица со столбцом «КОД». Каждая запись в моей таблице будет иметь значение «A», «B» или «C» в качестве значения в столбце «КОД». Что я хотел бы, так это подсчитать, сколько «А», «В» и «С» у меня есть.

Я знаю, что мог бы выполнить это с помощью 3 разных запросов, но мне интересно, есть ли способ сделать это всего с 1.


person dscl    schedule 18.01.2011    source источник


Ответы (1)


Использовать:

  SELECT t.code,
         COUNT(*) AS numInstances
    FROM YOUR_TABLE t
GROUP BY t.code

Вывод будет напоминать:

code   numInstances
--------------------
A      3
B      5
C      1

Если существует код, который не использовался, он не будет отображаться. Вам нужно будет LEFT JOIN к таблице, содержащей список кодов, чтобы увидеть те, у которых нет ссылок.

person OMG Ponies    schedule 18.01.2011
comment
Спасибо, это было прекрасно, group by ускользала от меня по какой-то глупой причине! - person dscl; 19.01.2011