我不确定如何构造SQL查询以返回列等于某些值的行数。
例如,
在表格myTable
中,如何返回myColumn = "xyz"
和myColumn = "abc"
所有行的计数?这可以通过一个查询来实现吗?
为了澄清,假设有10行myColumn = "xyx"
和7行myColumn = "abc"
,查询将返回如下内容:
firstCountResult: 10
secondCountResult: 7
答案 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