Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sql限制计数查询_Sql_Oracle - Fatal编程技术网

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

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

比如说,

在表
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站点上有意思的线程