- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:総数とその条件に一致したデータ数を同時に知りたい)
SQLで総数と条件一致データ数を同時に知りたい方法
このQ&Aのポイント
- SQLで総数と条件一致データ数を同時に知りたい方法について紹介します。
- 特定の条件に一致したデータの総数と、その中で特定のフラグが1のデータ数を同時に取得する方法をお探しですね。
- 通常、サブクエリを使用して条件一致データ数を取得すると、フラグの関係ない総数がわかりませんが、別の方法を紹介します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
SELECT count(*)as AllNum, sum(case flag when 1 then 1 else 0 end) as flagNum FROM info WHERE id = (サブクエリ); です。
その他の回答 (1)
- yambejp
- ベストアンサー率51% (3827/7415)
回答No.2
sumでやる方が常套のような気がしますcountでやる場合は、 条件外にNULLを返してやればよいです SELECT count(flag) flagAll ,count(if( flag = 1 AND id = (サブクエリ),1,NULL)) as flagNum FROM info sum(if(条件,1,0))なら条件に合致すると1なのでそれをsumすれば合致したの総和になります count(if(条件,1,NULL))ならcountはNULLをカウントしないので、条件外を除いた数を カウントします。条件に合致した場合の1はあまり意味はありません
質問者
お礼
ありがとうございます。 勉強になりました!
お礼
ありがとうございます。 助かりました!