sql限制计数查询

时间:2010-12-20 19:00:57

标签: sql oracle

我不确定如何构造SQL查询以返回列等于某些值的行数。

例如,

在表格myTable中,如何返回myColumn = "xyz"myColumn = "abc"所有行的计数?这可以通过一个查询来实现吗?

为了澄清,假设有10行myColumn = "xyx"和7行myColumn = "abc",查询将返回如下内容:

firstCountResult: 10
secondCountResult: 7

2 个答案:

答案 0 :(得分:3)

怎么样?:

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

答案 1 :(得分:2)

您希望按照mycolumn对计数进行分组,以便执行此操作

select 
         myColumn, count(*)
from  
         myTable 
where 
         myColumn in ('xyz','abc')
group by 
         myColumn