4

tContentNodeタイプ 2 または 3 に応じて、テーブルから行をカウントするための 2 つの SQL クエリがあります。
クエリ 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';

ここで、 1 つのクエリのみ_countAを使用して値を取得したいと考えています。_countB1 つのクエリを使用してカウントを取得するにはどうすればよいですか。それを行う方法はありますか。SQLite データベースを使用しています。

編集:両方を一緒にするのではなく、_countAと の値が必要です( を使用していません)。_countBIN

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

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-25T09:16:44.893 に答える
0

IN キーワードを使用

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

于 2013-01-15T04:16:14.963 に答える