SQL запрос ограниченного количества - PullRequest
3 голосов
/ 20 декабря 2010

Я не уверен, как структурировать запрос SQL, чтобы он возвращал количество строк, в которых столбец равен определенным значениям.

Например,

В таблице myTable как я могу вернуть количество всех строк, где myColumn = "xyz" и где myColumn = "abc"? Возможно ли это с помощью одного запроса?

Чтобы уточнить, скажем, есть 10 строк, где myColumn = "xyx" и 7 строк, где myColumn = "abc", запрос будет возвращать что-то вроде:

firstCountResult: 10
secondCountResult: 7

Ответы [ 2 ]

3 голосов
/ 20 декабря 2010

Как насчет?:

SELECT 
    COUNT(*),
    myColumn
FROM myTable
WHERE myColumn IN ('xyz', 'abc')
GROUP BY myColumn

Этот подход также работает с другими агрегатными функциями, такими как MIN, MAX, AVG, SUM ... Вы получаете агрегированный результат по значению сгруппированного столбца по сравнению со всеми строками.

--min myDate per myColumn value
SELECT
    MIN(myDate),
    myColumn
FROM myTable
WHERE myColumn IN ('xyz', 'abc')
GROUP BY myColumn

--sum of myNumericCol per myColumn value
SELECT
    SUM(myNumericCol),
    myColumn
FROM myTable
WHERE myColumn IN ('xyz', 'abc')
GROUP BY myColumn
2 голосов
/ 20 декабря 2010

Вы хотите сгруппировать счет по mycolumn, чтобы вы сделали это

select 
         myColumn, count(*)
from  
         myTable 
where 
         myColumn in ('xyz','abc')
group by 
         myColumn
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...