私は次の機能表に加えて、一般的なユーザーテーブルを持っているSQL:多くのテーブルに多くをもとに条件の異なるユーザーの数
機能:
-----------------------
| userId | feature |
-----------------------
| 1 | account |
| 1 | hardware |
| 2 | account |
| 3 | account |
| 3 | hardware |
| 3 | extra |
-----------------------
基本的に私は、いくつかを取得しようとしています報告目的でカウントします。特に、私はアカウントとハードウェアを持つユーザーの数をアカウントの総数とともに調べようとしています。
私はかかわらず、アカウントとハードウェアの両方を持つユーザーの数を取得する方法に関して不明な点が午前アカウント
SELECT
COUNT(DISTINCT userId) as totalAccounts
FROM features
WHERE feature = "account";
の合計数を取得するには、次の操作を行うことができます知っています。この例のデータセットでは、探している番号は2です。ユーザー1と3はアカウントとハードウェアの両方を持っています。
私はこれを1回のクエリで行うことをお勧めします。おそらくCASE(以下totalAccountsための一例)を使用して:
SELECT
COUNT(DISTINCT(CASE WHEN feature = "account" THEN userId END)) as totalAccounts,
COUNT(?) as accountsWithHardware
FROM features;