4

我有两个 SQL 查询来计算表中的行数tContentNode,具体取决于类型 2 或 3。
查询 1:

SELECT count(*) _countA FROM TCONTENTNODE WHERE type = '2' 
     AND parentid ='02b3abc2-4983-485a-ab09-1a8cb328b9b5';

查询 2:

SELECT count(*) _countB FROM TCONTENTNODE WHERE type = '3' 
     AND parentid ='02b3abc2-4983-485a-ab09-1a8cb328b9b5';

现在我想获取_countA_countB只使用一个查询的值。如何使用一个查询获得计数。有没有办法做到这一点。我正在使用 SQLite 数据库。

编辑: 我想要 和 的值,_countA_countB不是一起(不使用IN)。

4

4 回答 4

2

我使用以下查询解决了这个问题:-

SELECT 
  COUNT(case TCONTENTNODE.type when '2' then 1  end) as _countA,
  COUNT(case TCONTENTNODE.type when '3' then 1  end) as _countB
FROM  TCONTENTNODE 
WHERE TCONTENTNODE.parentid ="02b3abc2-4983-485a-ab09-1a8cb328b9b5";
于 2012-09-25T11:23:41.593 回答
1

没有 SQLite 来确认,但是

select count(*), type FROM TCONTENTNODE WHERE (type = '2' or type = '3' )
     AND parentid ='02b3abc2-4983-485a-ab09-1a8cb328b9b5' group by type

只是为了澄清这将返回

count type

23     2
23888  3
于 2012-09-25T09:17:33.093 回答
0

尝试使用group by

SELECT type,count(*) as cnt
FROM TCONTENTNODE 
WHERE parentid ='02b3abc2-4983-485a-ab09-1a8cb328b9b5';
group by type

对于两个变量:

SELECT 
  COUNT(case TCONTENTNODE.type when '2' then 1 end) as _countA,
  COUNT(case TCONTENTNODE.type when '3' then 1 end) as _countB
FROM  TCONTENTNODE 
WHERE TCONTENTNODE.parentid ='02b3abc2-4983-485a-ab09-1a8cb328b9b5';
于 2012-09-25T09:16:44.893 回答
0

使用 IN 关键字

从 TCONTENTNODE WHERE 中选择 count(*) _countB(输入 (3,2) AND parentid ='02b3abc2-4983-485a-ab09-1a8cb328b9b5');

于 2013-01-15T04:16:14.963 回答