sql限制计数查询
我不确定如何构造SQL查询以返回列等于某些值的行数 比如说, 在表sql限制计数查询,sql,oracle,Sql,Oracle,我不确定如何构造SQL查询以返回列等于某些值的行数 比如说, 在表myTable中,如何返回myColumn=“xyz”和myColumn=“abc”所在的所有行的计数?通过一个查询就可以做到这一点吗 为了澄清,假设在myColumn=“xyx”中有10行,在myColumn=“abc”中有7行,查询将返回如下内容: firstCountResult: 10 secondCountResult: 7 怎么样 SELECT COUNT(*), myColumn FROM myT
myTable
中,如何返回myColumn=“xyz”
和myColumn=“abc”
所在的所有行的计数?通过一个查询就可以做到这一点吗
为了澄清,假设在myColumn=“xyx”
中有10行,在myColumn=“abc”
中有7行,查询将返回如下内容:
firstCountResult: 10
secondCountResult: 7
怎么样
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
您希望按mycolumn对计数进行分组,因此可以执行此操作
select
myColumn, count(*)
from
myTable
where
myColumn in ('xyz','abc')
group by
myColumn
从不计数(*),计数(1)或计数(非空使用索引中的列)更好。Hmmm。计数(*)和计数(1)之间的差异可能不是您所期望的:。我想非空索引列可能有意义,但我没有可用的。@stjohnroe,count(*)与count(1)相同。实际上,在仔细阅读之后,我可能是错误的,在masters站点上有意思的线程